Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
Sayfa: [1]   Aşağı git
Yazdır
Gönderen Konu: Amiga DOS yardım!!!  (Okunma Sayısı 5600 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« : Eylül 19, 2008, 15:04:57 ÖS »

Yardıma ihtiyacım var arkadaşlar

AmigaDOS 3.x'de, Shell'den bir Pathname'i, volume ve directory olarak nasıl Parse ederim? E-UAELoad için lazım. Ben ED programını kullanıyorum. Kendimi biraz kulağımı tersten tutuyo gibi hissediyorum da.

Interneti karıştırdım, OS3.x'de internal fonksiyonlarla yapılabiliyomuş? Ama nasıl? Hiç bi yerde bulamadım.
Logged

Alper
Blasterreal
Deneyimli
*****
Mesaj Sayısı: 856



Üyelik Bilgileri WWW
« Yanıtla #1 : Eylül 20, 2008, 00:07:59 ÖÖ »

Alper konuyu anlamadım biraz acarmısın. Herhangi bir direktory veya klasör (çekmece ) onumu mout etmek istiyorsun.
Örnek ; misal bi klasör var adı Euauexx diyelik bunu sitememi mount etmek istiyorsun. hazır topic acılmış iken

Assign Euaexx: Dh1:Emulator/Euaexx şeklinde yapabilirsin
Sanırım sorunun karşılıgı bu degil ama ne yapmak istedigini tam yazar isen yardımcı olurum
Logged

Amiga 1200
ACA 1221 28 MHz 64 MB RAM Maprom
Amiga OS 3.9
------------
Mac Mini 1.42 GHZ 1GB RAM ATİ 9200 32MB 160GB HDD
Morphos 3.9
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #2 : Eylül 20, 2008, 10:00:56 ÖÖ »

Tamam biraz daha açmaya çalışayım:
Şimdi elimizde bi path var diyelim, misal : "Workbench:Programs/PPaint/Ppaint.exe"
Şimdi bu path'i $Pathname sıralı değişkenine yükleyelim :
Set Pathname "Workbench:Programs/PPaint/PPaint.exe"

OS1.3 için Basename diye bir komut var ARP arşivi içinde. Bu komuta path'i veriyosun, sana sadece dosya adını parse ediyo misal :
Echo 'Basename $Pathname' dediğinde sonuç olarak ekrana:
PPaint.exe yazıyo.

Şimdi öyle bi komut satırına ihtiyacım var ki, ona argument olarak $Pathname değişkenini vereceğim, o bana çıktı olarak Volume'ü vericek, misal :
Set Volname '{Bilmediğim komut} $Pathname'
Echo $Volname
artık $Volname değişkeninin değeri "Workbench:" olmalı ve ekrana Workbench: yazmalı.

Ayrıca bana dizin'i de parse edicek bir komut lazım. Yani bana "Workbench:Programs/PPaint"'i vericek

AmigaDos Guide'da dediğine göre, Commodore OS3.x'den sonra ARP komutlarını paketten kaldırmış, bu fonksiyonları internal yapmış??? Rom'a mı attılar, başka bi komuta mı yüklediler bilemiyorum.
Logged

Alper
Arda
Uzman
*****
Mesaj Sayısı: 2.326


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« Yanıtla #3 : Eylül 20, 2008, 13:21:22 ÖS »

senin regular expressions kullanman gerek. her türlü string parsing işlemi yapılabilir. Öğrenmesi de zor değil.

regexp.library lazım sana (aminet.net/util/libs/regexp.lha) ve de subst (substring) diye bir cli komutu vardı, o da lazım sana.
edit:
haa yok substpat imiş. (aminet.net/util/cli/substpat.lha)

her türlü engel kaldırılmış oldu işte
« Son Düzenleme: Eylül 20, 2008, 19:07:52 ÖS Gönderen: Arda » Logged

Arda
Uzman
*****
Mesaj Sayısı: 2.326


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« Yanıtla #4 : Eylül 20, 2008, 19:06:54 ÖS »

alpyre, eğer beklersen sana ufak bir uygulama yazabilirim bu işi yapan.
bugün ve yarın biraz yoğunum, pazartesi yollarım buraya...
Logged

Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #5 : Eylül 21, 2008, 02:40:51 ÖÖ »

Arda'cım çok sağol ya. Gerek kalmadı. Ama çok yardımın dokundu inan.
Kahkaha
Senin verdiğin linklerdeki readme'leri okurken beyinde kıvılcımlar çaktı ve gizem çözüldü. Harbiden internal olarak halletmişler olayı. Bak şöyle hallettim:

Path'imiz yine aynı olsun:
Set Pathname "Workbench:Programs/PPaint/PPaint.exe"

Artık Basename komutuna ihtiyacım yok, E-UAELoad arşivinden kaldırıyorum. Çünkü:
List $Pathname LFormat "%N"   Dosya adını (a.k.a Basename)
PPaint.exe

List $Pathname LFormat "%M"   uzantı hariç dosya adını
PPaint

List $Pathname LFormat "%P"   dizini veriyor.
Workbench:Programs/PPaint/

Volüm'ü elde etmek için ise biraz numara yapmamız lazım:
CD 'List $Pathname LFormat "%P"'
CD :
Set Volumename 'CD'
Echo $Volumename

Workbench:

Ne kadar da basitmiş değil mi?

NOT: Bu şekilde parse edebilmemiz için Path'in gerçek bir path olması gerekiyor. Benim scriptlerde zaten Path'ler gerçek olduğu için sorun yok.
« Son Düzenleme: Eylül 22, 2008, 01:53:28 ÖÖ Gönderen: Alpyre » Logged

Alper
Sayfa: [1]   Yukarı git
Yazdır
Gitmek istediğiniz yer: