Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
sideshow •-->
![•--> •-->](/phpBB2/images/ranks/ranki1.gif)
![](images/avatars/753359314433bd6adc2094.jpg)
Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 14.01.2008 - 17:05 Titel: Pfadprobleme! (: oder /) |
|
|
Hallo Allerseits!
So, nachdem ich jetzt seit Stunden teste, ausprobiere, lese, suche, verzweifle, etc... muss ich jetzt einfach fragen!
Ich habe folgende Situation:
Ich habe ein kleines Programm geschrieben. Im Programm kann ich einen Pfad setzen. Der sieht z.B. so aus:
Code: | /Users/florianbinder/Desktop/REX_data_import/ |
So, jetzt wird aus Jahreszahl und KW + entsprechender Unterordnerstruktur dieser Pfad zusammengebastelt:
Code: | /Users/florianbinder/Desktop/REX_data_import/200803/texte/ |
In diesem "texte" Verzeichnis liegen einige XML Dateien (haben aber ein anderes Suffix- ist jetzt nicht relevant). Also z.B. drei Dateien:
Code: |
/Users/florianbinder/Desktop/REX_data_import/200803/texte/1000.rxt
/Users/florianbinder/Desktop/REX_data_import/200803/texte/1001.rxt
/Users/florianbinder/Desktop/REX_data_import/200803/texte/1002.rxt
|
So, ich möchte nun eigentlich nichts weiter, als jede Datei einzeln anzufassen, zu öffnen, einen Teil auslesen und wieder schließen. Leider pack ich es einfach nicht... Ich hab zu lange PHP programmiert und meine AS Kenntnisse sind mittlerweile total mies!
Ich habe zwischenzeitlich mal versucht, das mit einem ShellScript zu lösen - da hab ich wenigstens alle Dateien aus dem Verzeichnis auslesen können, aber dann hab ich Probleme mit den Pfaden. Irgendwie raff ich das mit den POSIX Pfaden nicht...
So hatte ich es mit dem Shell Script:
Code: |
-- Get all rxt files
set xml_files_string to do shell script "find " & kwfolder_path & " -name \"*." & XMLFileSuffix & "\""
|
kwfolder_path ist der richtige Pfad zum Verzeichnis, XMLFileSuffix ist ".rxt"
Jetzt bekomme ich alle Dateien zusammen mit den richtigen Pfaden als String zurück... ist einfach nicht das Wahre...
Ich hoffe jemand kann mir helfen!!!
Viele Grüße,
sideshow _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Skeeve •---->
![•----> •---->](/phpBB2/images/ranks/ranki3.gif)
![](images/avatars/109842322644abb04db262b.gif)
Anmeldedatum: 20.04.2006 Beiträge: 1067
|
Verfasst am: 14.01.2008 - 17:45 Titel: |
|
|
Und ich verstehe nicht genau, was Du eigentlich willst.
Ein POSIX path ist das Teil mit den "/". Den erhältst Du mit "POSIX path of ..." aus einem Alias oder einem String.
Ein POSIX file ist die "Umkehrung", d.h. aus einem "POSIX path"-String wird ein "file", das Du mit "as alias" dann in AS verwenden kannst.
Und dann gibt es noch das praktische "quoted form of", das man eigentlich immer vor einem "do shell script" auf einen "POSIX path" anwenden sollte, damit das Shell Script nicht durch Sonderzeichen verwirrt wird.
Nun ist die Frage: Was hast Du in Deinem Script (das sieht nach POSIX path" aus) und was willst Du? _________________ "All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies") |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
sideshow •-->
![•--> •-->](/phpBB2/images/ranks/ranki1.gif)
![](images/avatars/753359314433bd6adc2094.jpg)
Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 14.01.2008 - 17:59 Titel: |
|
|
Ok, sorry... ich hatte einfach vorher so ein Brett vorm Kopf weil ich so lange rumprobiert hab...
Also, ich möchte eben aus besagtem Ordner die XML Dateien einzeln öffnen, auslesen und wieder schließen. Nur weiss ich nicht, wie ich am besten an die einzelnen Files drankomme.
Ich habe es über ein ShellScript versucht (mittels 'find') - da bekomme ich die absoluten Pfade (mit / getrennt) als String zurück. Jetzt weiss ich nicht wie ich damit weitermache?!
Hier mein Script-Schnipsel:
Code: |
-- Get all rxt files
set xml_files_string to do shell script "find " & kwfolder_path & " -name \"*." & XMLFileSuffix & "\""
|
Jetzt bekomme ich folgenden String zurück:
Code: |
/Users/florianbinder/Desktop/REX_data_import/200803/texte/1000.rxt
/Users/florianbinder/Desktop/REX_data_import/200803/texte/1001.rxt
/Users/florianbinder/Desktop/REX_data_import/200803/texte/1002.rxt
|
Diese Files möchte ich jetzt einzeln anpacken, öffnen, auslesen und wieder schließen. Nur hab ich keine Ahnung wie...
Per PHP hätte ich ja kein Problem - aber mit AS weiss ich nicht mehr wie das geht. Als ich damals gescriptet hab (war noch zu OS9 Zeiten - ist also schon wirklich lange her) waren die Pfade noch durch ":" getrennt. Ist das immer noch so oder blicke ich nur nicht durch?
Bin für jeden Hinweis dankbar![/code] _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
iScript •---->
![•----> •---->](/phpBB2/images/ranks/ranki3.gif)
![](images/avatars/186413132441e503f123ad.png)
Anmeldedatum: 29.03.2001 Beiträge: 1116
|
Verfasst am: 14.01.2008 - 20:19 Titel: |
|
|
Code: | set xml_files_string to paragraphs of (do shell script "find " & kwfolder_path & " -name \"*." & XMLFileSuffix & "\"") |
dann erhältst du eine liste mit den posix-pfaden (strings) zurück, die du dann einzeln abarbeiten kannst. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Skeeve •---->
![•----> •---->](/phpBB2/images/ranks/ranki3.gif)
![](images/avatars/109842322644abb04db262b.gif)
Anmeldedatum: 20.04.2006 Beiträge: 1067
|
Verfasst am: 15.01.2008 - 00:15 Titel: |
|
|
Alternativ 2 AS-only Lösungen
Zitat: | tell application "Finder"
set XMLFileSuffix to "rxt"
set kw to "200803"
-- so
set the_files to every file of folder "texte" of folder kw of folder "REX_data_import" of (path to desktop folder) whose name extension is XMLFileSuffix
-- alternativ
tell folder (path to desktop folder)
tell folder "REX_data_import"
tell folder kw
tell folder "texte"
set the_files to every file whose name extension is XMLFileSuffix
end tell
end tell
end tell
end tell
end tell
|
Nachtrag: find sucht natürlich rekursiv unterhalb von "texte" weiter. Das macht die AS-only Lösung nicht. Ich bin davon ausgegangen, daß es in "texte" keine (interessanten) Unterverzeichnisse gibt. _________________ "All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies") |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
sideshow •-->
![•--> •-->](/phpBB2/images/ranks/ranki1.gif)
![](images/avatars/753359314433bd6adc2094.jpg)
Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 15.01.2008 - 00:20 Titel: |
|
|
Danke euch beiden! Ich werde das gleich morgen ausprobieren!!!
Vielen Dank für eure Hilfe und gute Nacht! ![Smile](images/smiles/icon_smile.gif) _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
sideshow •-->
![•--> •-->](/phpBB2/images/ranks/ranki1.gif)
![](images/avatars/753359314433bd6adc2094.jpg)
Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 15.01.2008 - 09:42 Titel: |
|
|
So...
@ iScript:
Deinen Vorschlag habe ich ausprobiert. Die Zeile wird ganz normal ausgeführt - wenn ich versuche, den Inhalt per display dialog anzuzeigen bekomme ich den Fehler: AppleEvent handler failed. (-10000)
Was bekomme ich denn da von dem Shell Script zurück und wie kann ich das AppleScript Seitig weiterverarbeiten?
@ Skeeve:
Ich hätte nichts gegen eine AS Lösung da es keine weiteren Unterordner von "texte" mehr gibt. Das Problem ist nur, das ja schon ein "Basispfad" gesetzt ist. Und zwar dieser: /Users/florianbinder/Desktop/REX_data_import/
Soll heissen das dieser Ordner nicht zwangsläufig auf dem Schreibtisch liegt (so wie es in deinem Beispiel der Fall ist)
Ich glaube ich muss mich mal in diese ganzen Pfad Sachen genauer einlesen... _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
sideshow •-->
![•--> •-->](/phpBB2/images/ranks/ranki1.gif)
![](images/avatars/753359314433bd6adc2094.jpg)
Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 15.01.2008 - 12:00 Titel: |
|
|
Jetzt habe ich es doch über die Shell Variante hinbekommen! Es ging nur vorher nicht weil ich es nicht in einem "tell Application "Finder" drin hatte...
Herr wirf Hirn vom Himmel...
Danke euch für die Hilfe! Jetzt funzt es super!!! _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Skeeve •---->
![•----> •---->](/phpBB2/images/ranks/ranki3.gif)
![](images/avatars/109842322644abb04db262b.gif)
Anmeldedatum: 20.04.2006 Beiträge: 1067
|
Verfasst am: 15.01.2008 - 13:10 Titel: |
|
|
sideshow hat Folgendes geschrieben: | @ Skeeve:
Ich hätte nichts gegen eine AS Lösung da es keine weiteren Unterordner von "texte" mehr gibt. Das Problem ist nur, das ja schon ein "Basispfad" gesetzt ist. Und zwar dieser: /Users/florianbinder/Desktop/REX_data_import/ |
Wo ist das Problem? Oder willst Du alles vorgekaut haben? Ein bischen abstrahieren und fortführen mußt Du schon selbst.
Aber na gut... Damit ich hier nicht einen 2ten bix(bixbix) heranziehe, will ich mal nicht so sein:
Zitat: | set basispfad to "/Users/florianbinder/Desktop/REX_data_import/"
set basis to (POSIX file basispfad) as alias
tell application "Finder"
set XMLFileSuffix to "rxt"
set kw to "200803"
-- so
set the_files to every file of folder "texte" of folder kw of folder basis whose name extension is XMLFileSuffix
-- alternativ
tell folder basis
tell folder kw
tell folder "texte"
set the_files to every file whose name extension is XMLFileSuffix
end tell
end tell
end tell
end tell |
_________________ "All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies") |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
sideshow •-->
![•--> •-->](/phpBB2/images/ranks/ranki1.gif)
![](images/avatars/753359314433bd6adc2094.jpg)
Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 15.01.2008 - 13:28 Titel: |
|
|
Skeeve hat Folgendes geschrieben: | Wo ist das Problem? Oder willst Du alles vorgekaut haben? Ein bischen abstrahieren und fortführen mußt Du schon selbst. |
Geht's noch? Ich brauch bestimmt nicht "alles vorgekaut"! Hilfestellung reicht vollkommen. Ich bin bestimmt nicht jemand der hier fertige Scripte erwartet wenn man ein Problem hat. Ich mache mir bestimmt genug Gedanken darüber wie ich es fortführen kann - sonst wäre ich jetzt auch nicht auf eine Lösung gekommen. Ich hatte das Problem hier - das du jetzt somit gelöst hast:
Code: |
set basis to (POSIX file basispfad) as alias
|
Skeeve hat Folgendes geschrieben: | Aber na gut... Damit ich hier nicht einen 2ten bix(bixbix) heranziehe, will ich mal nicht so sein... |
Und wer soll das bitte sein? Wie gesagt, ich mache mir so viel Gedanken wie ich kann um mein Problem zu lösen!
Ich bin bestimmt kein "Newbie" was programmieren angeht - nur einfach nicht fit mit AS... _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Skeeve •---->
![•----> •---->](/phpBB2/images/ranks/ranki3.gif)
![](images/avatars/109842322644abb04db262b.gif)
Anmeldedatum: 20.04.2006 Beiträge: 1067
|
Verfasst am: 15.01.2008 - 15:00 Titel: |
|
|
sideshow hat Folgendes geschrieben: | Geht's noch?
[...]
[...bix(bixbix)...] Und wer soll das bitte sein? |
Jemand der mindestens genauso überreagiert wie Du und mich ebenfalls nicht mehr leiden kann.
sideshow hat Folgendes geschrieben: | Ich brauch bestimmt nicht "alles vorgekaut"! Hilfestellung reicht vollkommen. |
Sagen wir mal so: Ich erlaube mir das zu bezweifeln, habe ich Dir doch bereits in meiner ersten Antwort hier schon die Grundlagen gegeben, aus meiner AS-only Lösung die, zuletzt von mir gepostete herauszuarbeiten. Wie Du ja leicht siehst, wenn Du die letzten beiden vergleichst, ist der Unterschied nur minimal.
sideshow hat Folgendes geschrieben: | Ich bin bestimmt kein "Newbie" was programmieren angeht - nur einfach nicht fit mit AS... |
Sieh mal an Ich auch nicht. Aber ich probiere halt gerne mal aus.[/list] _________________ "All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies") |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
sideshow •-->
![•--> •-->](/phpBB2/images/ranks/ranki1.gif)
![](images/avatars/753359314433bd6adc2094.jpg)
Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 15.01.2008 - 15:18 Titel: |
|
|
Skeeve hat Folgendes geschrieben: |
Jemand der mindestens genauso überreagiert wie
|
Mag sein... evtl. kommt das daher das ich seit ca. 10 Stunden an dem blöden Problem sitze und nach vielem probieren trotzdem nicht auf die Lösung komme...
Skeeve hat Folgendes geschrieben: |
Du und mich ebenfalls nicht mehr leiden kann.
|
Hab ich das gesagt? Ich glaube nicht?
Warum sollte ich dich nicht mehr leiden können. Wir haben hier eine Meinungsverschiedenheit (wenn man es überhaupt so nennen kann) - um dich nicht leiden zu können kenn ich dich doch viel zu wenig!
Skeeve hat Folgendes geschrieben: | sideshow hat Folgendes geschrieben: | Ich brauch bestimmt nicht "alles vorgekaut"! Hilfestellung reicht vollkommen. |
Sagen wir mal so: Ich erlaube mir das zu bezweifeln, habe ich Dir doch bereits in meiner ersten Antwort hier schon die Grundlagen gegeben, aus meiner AS-only Lösung die, zuletzt von mir gepostete herauszuarbeiten. Wie Du ja leicht siehst, wenn Du die letzten beiden vergleichst, ist der Unterschied nur minimal.
|
Dann muss ich dich leider enttäuschen! Den Unterschied habe ich nicht bemerkt... Wie gesagt - ich sitze bestimmt schon seit gut 10 Stunden vor dem Problem und ich bin mit Sicherheit niemand der gleich aufgibt. Ich kann es leider einfach nicht besser. Wie auch? Das letzte mal hab ich vor ca. 5 Jahren ein AS geschrieben. Seitdem nur noch PHP, MySQL etc. Jetzt brauch ich es mal wieder und da klappt halt nicht alles gleich auf anhieb! :/
Skeeve hat Folgendes geschrieben: | sideshow hat Folgendes geschrieben: | Ich bin bestimmt kein "Newbie" was programmieren angeht - nur einfach nicht fit mit AS... |
Sieh mal an Ich auch nicht. Aber ich probiere halt gerne mal aus. |
Das mache ich auch gerne! Wenn ich aber seit Stunden dran sitze und es kommt nix dabei raus verliere ich leider die Motivation und brauche wieder einen Stoß in die richtige Richtung! Und die erhoffe ich mir eben hier!
Ich würde sagen: Schwamm drüber und weiter Scripten, oder? Was meinst du?
Edit:
Und sorry für's überreagieren! ![Wink](images/smiles/icon_wink.gif) _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
|