alte kurze DOS- Dateinnamen ( "8.3" Zeichen) erzeugen
Hallo, Ich habe im Auto einen Loudlink- CD-Wechsler-Emulator. Das Teil hängt am Radio und tut so, als sei er ein CD-Wechsler. Die Musik wird von einer FAT- SD-Karte gelesen. Die Reihenfolge wird durch eine Inhaltsdatei Datei festgelegt, in der die Musikdateien und deren "alte" DOS- Entsprechung (Dateinamen mit max. 8 Zeichen plus Erweiterung von 3 Zeichen) hinterlegt sind. Die Verwaltung erfolgt unter Windoof mit dem Loudlink Explorer, der auch die Inhaltsdateien erstellt. Die meisten werden sich noch an solche Namen erinnern, z.B.: "Progra~1" für "Programme" usw. Einfach alle Namen so abkürzen funktioniert leider nicht (habe ich schon probiert). Außerdem gibt es auch immer wiederkehrende gleiche Namen. Das wird leider nicht einfach weiter gezählt (also "Progra~1", "Progra~2" usw.). Ich würde das gern per Script lösen, um nicht immer Windoof verwenden zu müssen, da der Loudlink Explorer nicht mit Wine läuft. Nun die Frage: Wie kann ich diese kurzen DOS- Dateinamen unter Linux "erzeugen"? . -- Mit freundlichen Grüßen Sebastian Reinhardt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, Am Wed, 09 Jan 2013, Sebastian Reinhardt schrieb:
Die meisten werden sich noch an solche Namen erinnern, z.B.: "Progra~1" für "Programme" usw. Einfach alle Namen so abkürzen funktioniert leider nicht (habe ich schon probiert). Außerdem gibt es auch immer wiederkehrende gleiche Namen. Das wird leider nicht einfach weiter gezählt (also "Progra~1", "Progra~2" usw.).
Nun die Frage: Wie kann ich diese kurzen DOS- Dateinamen unter Linux "erzeugen"?
Blöde Idee vielleicht, aber wenn du ein CD-Image (ISO) erzeugst ohne Joliet- und RockRidge-Erweiterungen müßten darin genau solche Dateinamen generiert werden. Besser vielleicht: die SD-Karte mit FAT16/msdos als Dateityp mounten, allerdings darf die dann nicht zu groß sein. Die langen Namen (LFN) gibt's AFAIR erst seit FAT32. Apropos: wie mountest du die SD-Karte denn bisher? Warum das aber nicht auch so funktioniert ist mir schleierhaft, AFAIR müßte es reichen die ersten 6 Zeichen zu nehmen und bei Konflikten durchzunummerieren. http://en.wikipedia.org/wiki/Long_filename http://en.wikipedia.org/wiki/8.3_filename http://en.wikipedia.org/wiki/8.3_filename#How_to_convert_a_long_filename_to_... Bzw. generell: http://www.google.com/search?q=FAT+LFN+site:wikipedia.org HTH, -dnh -- A tangled cable is a happy cable. -- R. B. West -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Moin moin, Am 2013-01-09 8:45, schrieb David Haller:
Hallo,
Am Wed, 09 Jan 2013, Sebastian Reinhardt schrieb:
Die meisten werden sich noch an solche Namen erinnern, z.B.: "Progra~1" für "Programme" usw. Einfach alle Namen so abkürzen funktioniert leider nicht (habe ich schon probiert). Außerdem gibt es auch immer wiederkehrende gleiche Namen. Das wird leider nicht einfach weiter gezählt (also "Progra~1", "Progra~2" usw.).
Nun die Frage: Wie kann ich diese kurzen DOS- Dateinamen unter Linux "erzeugen"?
Blöde Idee vielleicht, aber wenn du ein CD-Image (ISO) erzeugst ohne Joliet- und RockRidge-Erweiterungen müßten darin genau solche Dateinamen generiert werden.
Besser vielleicht: die SD-Karte mit FAT16/msdos als Dateityp mounten, allerdings darf die dann nicht zu groß sein. Die langen Namen (LFN) gibt's AFAIR erst seit FAT32. Apropos: wie mountest du die SD-Karte denn bisher?
Warum das aber nicht auch so funktioniert ist mir schleierhaft, AFAIR müßte es reichen die ersten 6 Zeichen zu nehmen und bei Konflikten durchzunummerieren.
Wenn das Dateisystem FAT32 und als vfat gemountet ist sollte der Kernel dies erledigen da muss man nicht dran rumfrickeln.
http://en.wikipedia.org/wiki/Long_filename http://en.wikipedia.org/wiki/8.3_filename
http://en.wikipedia.org/wiki/8.3_filename#How_to_convert_a_long_filename_to_...
Bzw. generell: http://www.google.com/search?q=FAT+LFN+site:wikipedia.org
HTH, -dnh
-- A tangled cable is a happy cable. -- R. B. West
lg max -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 09.01.2013 08:45, schrieb David Haller:
Blöde Idee vielleicht, aber wenn du ein CD-Image (ISO) erzeugst ohne Joliet- und RockRidge-Erweiterungen müßten darin genau solche Dateinamen generiert werden.
Ich schätze das wird nichts nützen. Es werden ja die kurzen Dateinamen benötigt, die auf auf der SD Karte vorhanden sind. Auf einem anderen Medium generierte Dateinamen können davon abweichen. Die Nummerierung bei "ähnlichen" hängt von der Reihenfolge in der die Dateien angelegt wurden. Ich habe ja aus Neugierde mal gesucht, ob man unter Linux den 8.3 Namen auslesen kann. Aber wenn David schon keine Lösung kennt, brauche ich nicht mehr suchen;-) Unter Windows ist das auf der Shell ganz simpel und kann auch über ein NT-Shell Skript automatisiert werden. Fall Sebastian Interesse hat kann er sich per PM bei mir melden. -- Grüße Ralf Antworten bitte nur in die Mailingliste! PMs bitte an: listpm (@) arndt-de (.) eu -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 09.01.2013 13:00, schrieb Markus Heinze:
http://en.wikipedia.org/wiki/8.3_filename#How_to_convert_a_long_filename_to_...
1. verstehe ich Sebastian dahingehend, dass die bestehenden 8.3 Namen ermitteln und nicht welche generieren will. 2. wird in dem Beispiel der DOS/Windows Befehl "dir" verwendet also kein Linux Werkzeug. Mal abgesehen davon würde ich (abhängig davon, wie ich die Dateinamen weiter verwenden will) in einer NT-Shell nicht "dir" verwenden, sondern in einer "for" Schleife alle Dateien auflisten und die 8.3 Namen ausgeben lassen. -- Grüße Ralf Antworten bitte nur in die Mailingliste! PMs bitte an: listpm (@) arndt-de (.) eu -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Wirre Tippfehler korrigiert und nochmal geschickt:-( Am 09.01.2013 08:45, schrieb David Haller:
Blöde Idee vielleicht, aber wenn du ein CD-Image (ISO) erzeugst ohne Joliet- und RockRidge-Erweiterungen müßten darin genau solche Dateinamen generiert werden.
Ich schätze das wird nichts nützen. Es werden ja die kurzen Dateinamen benötigt, welche auf auf der SD Karte vorhanden sind. Auf einem anderen Medium generierte Dateinamen können davon abweichen. Die Nummerierung bei "ähnlichen" Dateinamen hängt von der Reihenfolge ab, in der die Dateien angelegt wurden. Ich habe ja aus Neugierde mal gesucht, ob man unter Linux den 8.3 Namen auslesen kann. Aber wenn David schon keine Lösung kennt, brauche ich nicht mehr suchen;-) Unter Windows ist das auf der Shell ganz simpel und kann auch über ein NT-Shell Skript automatisiert werden. Falls Sebastian Interesse hat, kann er sich per PM bei mir melden. -- Grüße Ralf Antworten bitte nur in die Mailingliste! PMs bitte an: listpm (@) arndt-de (.) eu -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, Am Wed, 09 Jan 2013, Ralf Arndt schrieb:
Am 09.01.2013 08:45, schrieb David Haller:
Blöde Idee vielleicht, aber wenn du ein CD-Image (ISO) erzeugst ohne Joliet- und RockRidge-Erweiterungen müßten darin genau solche Dateinamen generiert werden. [..] Ich habe ja aus Neugierde mal gesucht, ob man unter Linux den 8.3 Namen auslesen kann. Aber wenn David schon keine Lösung kennt, brauche ich nicht mehr suchen;-)
mount -t msdos -o ro [-o fat=16] DEV MOUNTPOINT oder sowas in der Art... Ansonsten glaube ich, ich hab das Problem nicht verstanden ... Bei VFAT (32) sollte der Linuxtreiber immer auch die 8.3 Dateinamen erzeugen, wenn man den Krams unter Linux erzeugt. Linux zeigt aber wohl immer die LFN-Namen an, wenn das geht... Was die "Loudlink" SW dann draus macht ... Man weiß es nicht. @Sebastian: Maile doch mal per PM(!) eine dieser ominösen Indexdateien/"Inhaltsdateien" die der Player verlangt ... Oder besser zwei, nämlich eine, die funktioniert und eine die's nicht tut. Vielleicht ist es evtl. sogar was triviales wie ein Zeilenumbruch mit nur dem Unix-'\n' statt dem DOS/Win '\r\n' ... Wenn man dann mal weiß, was der Player will kann man das bestimmt auch als ein Script mit find oder als perl-Script hinbasteln, das dir diese Datei für die SD-Karte generiert. Auf Dateisystemebene sehe ich kein Problem. Hm. *Hohum* Ist der Player so extrem doof und liest nur Listen mit den 8.3 Namen im FS. Da müßte man die dann wohl aus dem FS auslesen, nachdem man die SD-Karte befüllt hat. Äh, komm ich der Sache näher? *gähn* Wo hab ich noch gleich die Images hinverlegt ... Hab ich welche mit "LFN" Dateien? -dnh -- Das Gegenteil von Johannes B. Kerner ist ein stummes Genie. -- V. Birk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Erstmal Danke für die Ideen. Ich glaube aber, dass ich das nicht richtig geschildert habe: Auf der SD-Karte ist ein FAT32- Dateisystem. Das Mounten mache ich per "klick" in Dolphin etc., also nichts wildes. Ich kann auch unter Linux Daten drauf schreiben, muss dann aber nocht die Index- Datei erzeugen. Diese wird vom Gerät im Auto benötigt, da der sonst die Dateien nicht erkennt. Ich habe die Vermutung, dass die zwar auch FAT32 verwenden, aber um Speicher zu sparen die Dateien intern nur mit den 8+3- Namen verarbeiten. Hier mal die Konsole: ------------------------------------------------------------------------------------------ dorsy1:/media/3331-3532/cd01 # l insgesamt 12032 drwx------ 2 SNR users 32768 27. Dez 00:34 ./ drwx------ 12 SNR users 32768 1. Jan 1970 ../ -rw-r--r-- 1 SNR users 5885695 20. Jul 00:47 01-PITBULL-Back_in_Time.mp3 -rw-r--r-- 1 SNR users 6297257 20. Jul 00:48 02-PITBULL-Back_in_Time_ext.mp3 -rw-r--r-- 1 SNR users 88 27. Dez 01:47 !dirinfo.txt dorsy1:/media/3331-3532/cd01 # cat \!dirinfo.txt 01-PIT~1.MP3:01-PITBULL-Back_in_Time.mp3 02-PIT~1.MP3:02-PITBULL-Back_in_Time_ext.mp3 dorsy1:/media/3331-3532/cd01 # ------------------------------------------------------------------------------------------ Also das Kopieren und die eigentlichen Namen sind überhaupt kein Problem. Das Erstellen der "!dirinfo.txt" ist das Thema. Die habe ich auch schon versucht von Hand zu Erstellen/ Ändern, aber das klappt nicht so richtig.....manchmal werden die Musikstücke zum Abspielen angeboten und manchmal eben nicht (dann gleich die ganze "CD" nicht!). Wenn sich die Dateien so unterscheiden, wie hier (01, 02 usw.), dann geht das ja noch, aber wenn das fehlt, reicht es eben nicht immer nur z.B. "PITBUL~1.MP3" für "PITBULL-Back_in_Time.mp3" und "PITBUL~2.MP3" für "PITBULL-Back_in_Time_ext.mp3" zu schreiben.....das habe ich schon mal mit anderen Dateien probiert und es ging nicht. Irgendwie verstehe ich das System nach dem die Namen gekürzt werden nicht richtig. PS: Für die "lieben" Anwälte: Ich bin im Besitz der Original- CD's! Es handelt sich nur um eine Kopie für den privaten Gebrauch! -- Mit freundlichen Grüßen Sebastian Reinhardt LMV Landmaschinenvertrieb- und Service GmbH Hauptstrasse 13 (OT Hartmannsdorf) 01762 Hartmannsdorf- Reichenau Geschäftsführer: Bernd Reinhardt Amstgericht: Dresden Handelsregisternummer: HRB 2574 Umsatzsteuer- Identnr.: DE 206/261/04100 Tel: +49 373 26 1567 Mobil:+49 172 357 3107 Fax: +49 373 26 86804 Mail: snr@lmv-hartmannsdorf.de Web: www.lmv-hartmannsdorf.de Hinweis: Nach aktueller Rechtslage ist das Versenden von unaufgeforderter Werbung strafbar! Die in dieser Nachricht angegebenen persönlichen Daten dürfen nicht für Werbezwecke verwendet oder an Dritte weitergegeben werden! Alle durch unaufgeforderte Werbung und Missbrauch entstehende Kosten werden dem Urheber in Rechnung gestellt! Ich behalte mir vor, gegen den oder die Urheber rechtliche Schritte einzuleiten! -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Ich habe da gerade beim "händischen" Erstellen einer Testdatei ein Beispiel gefunden, was das Problem konkretisiert: ------------------------------------------------------------------------------------------- dorsy1:/media/3331-3532/cd05 # l insgesamt 732992 drwx------ 2 SNR users 32768 21. Sep 15:52 ./ drwx------ 12 SNR users 32768 1. Jan 1970 ../ -rw-r--r-- 1 SNR users 3934337 8. Sep 23:18 Brian Culbertson - Still Here (feat. Vivian Green).mp3 -rw-r--r-- 1 SNR users 3348869 8. Sep 23:13 David Guetta - Without You feat. Usher.mp3 -rw-r--r-- 1 SNR users 39754637 1. Sep 19:43 DEFJAY - Top20 Countdown@Part01.mp3 -rw-r--r-- 1 SNR users 18854180 1. Sep 20:03 DEFJAY - Top20 Countdown@Part02.mp3 -rw-r--r-- 1 SNR users 34989161 1. Sep 20:40 DEFJAY - Top20 Countdown@Part03.mp3 -rw-r--r-- 1 SNR users 21713966 1. Sep 21:02 DEFJAY - Top20 Countdown@Part04.mp3 -rw-r--r-- 1 SNR users 40455197 8. Sep 19:42 DEFJAY - Top20 Countdown@Part21.mp3 -rw-r--r-- 1 SNR users 20146463 8. Sep 20:03 DEFJAY - Top20 Countdown@Part22.mp3 -rw-r--r-- 1 SNR users 38484455 8. Sep 20:43 DEFJAY - Top20 Countdown@Part23.mp3 -rw-r--r-- 1 SNR users 17445971 8. Sep 21:02 DEFJAY - Top20 Countdown@Part24.mp3 -rw-r--r-- 1 SNR users 37800575 15. Sep 19:39 DEFJAY - Top20 Countdown@Part31.mp3 -rw-r--r-- 1 SNR users 21731480 15. Sep 20:02 DEFJAY - Top20 Countdown@Part32.mp3 -rw-r--r-- 1 SNR users 38294303 15. Sep 20:42 DEFJAY - Top20 Countdown@Part33.mp3 -rw-r--r-- 1 SNR users 19675670 15. Sep 21:03 DEFJAY - Top20 Countdown@Part34.mp3 -rw-r--r-- 1 SNR users 28458941 1. Sep 21:32 DEFJAY - ULTRAMIX mit DJ T-Man Part 01.mp3 -rw-r--r-- 1 SNR users 30936755 1. Sep 22:04 DEFJAY - ULTRAMIX mit DJ T-Man Part 02.mp3 -rw-r--r-- 1 SNR users 29134898 1. Sep 22:35 DEFJAY - ULTRAMIX mit DJ T-Man Part 03.mp3 -rw-r--r-- 1 SNR users 30006011 1. Sep 23:06 DEFJAY - ULTRAMIX mit DJ T-Man Part 04.mp3 -rw-r--r-- 1 SNR users 30302915 8. Sep 21:33 DEFJAY - ULTRAMIX mit DJ T-Man Part 21.mp3 -rw-r--r-- 1 SNR users 29487680 8. Sep 22:04 DEFJAY - ULTRAMIX mit DJ T-Man Part 22.mp3 -rw-r--r-- 1 SNR users 28876358 8. Sep 22:34 DEFJAY - ULTRAMIX mit DJ T-Man Part 23.mp3 -rw-r--r-- 1 SNR users 30254960 8. Sep 23:06 DEFJAY - ULTRAMIX mit DJ T-Man Part 24.mp3 -rw-r--r-- 1 SNR users 29123639 15. Sep 21:33 DEFJAY - ULTRAMIX mit DJ T-Man Part 31.mp3 -rw-r--r-- 1 SNR users 30281231 15. Sep 22:05 DEFJAY - ULTRAMIX mit DJ T-Man Part 32.mp3 -rw-r--r-- 1 SNR users 29439725 15. Sep 22:35 DEFJAY - ULTRAMIX mit DJ T-Man Part 33.mp3 -rw-r--r-- 1 SNR users 30126941 15. Sep 23:07 DEFJAY - ULTRAMIX mit DJ T-Man Part 34.mp3 -rw-r--r-- 1 SNR users 1950 27. Dez 01:47 !dirinfo.txt -rw-r--r-- 1 SNR users 3285485 15. Sep 23:10 Drake - HYFR feat. Lil Wayne.mp3 -rw-r--r-- 1 SNR users 4013984 8. Sep 23:10 Drake - Take Care feat. Rihanna.mp3 -rw-r--r-- 1 SNR users 2760065 1. Sep 23:13 Justin Bieber - Boyfriend.mp3 -rw-r--r-- 1 SNR users 3523592 1. Sep 23:10 Keyshia Cole - Take Me Away.mp3 -rw-r--r-- 1 SNR users 4876757 1. Sep 19:02 Nicki Minaj - Moment 4 Life feat. Drake.mp3 -rw-r--r-- 1 SNR users 3332189 15. Sep 23:17 Nicki Minaj - Pound The Alarm.mp3 -rw-r--r-- 1 SNR users 3735845 15. Sep 19:00 Rihanna - Talk That Talk feat. Jay-Z.mp3 -rw-r--r-- 1 SNR users 3574049 15. Sep 23:14 Taio Cruz - There She Goes feat. Pitbull.mp3 -rw-r--r-- 1 SNR users 3847184 1. Sep 23:17 Wale - Bag Of Money feat. Rick Ross, Meek Mill & T-Pain.mp3 -rw-r--r-- 1 SNR users 3830087 8. Sep 19:00 Webbie - I Miss You feat. Letoya Luckett.mp3 dorsy1:/media/3331-3532/cd05 # cat \!dirinfo.txt NICKIM~1.MP3:Nicki Minaj - Moment 4 Life feat. Drake.mp3 DEFJAY~1.MP3:DEFJAY - Top20 Countdown@Part01.mp3 DEFJAY~2.MP3:DEFJAY - Top20 Countdown@Part02.mp3 DEFJAY~3.MP3:DEFJAY - Top20 Countdown@Part03.mp3 DEFJAY~4.MP3:DEFJAY - Top20 Countdown@Part04.mp3 DE161F~8.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 01.mp3 DE37A0~8.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 02.mp3 DE5B3B~8.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 03.mp3 DE7E1A~8.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 04.mp3 KEYSHI~1.MP3:Keyshia Cole - Take Me Away.mp3 JUSTIN~1.MP3:Justin Bieber - Boyfriend.mp3 WALE-B~1.MP3:Wale - Bag Of Money feat. Rick Ross, Meek Mill & T-Pain.mp3 WEBBIE~1.MP3:Webbie - I Miss You feat. Letoya Luckett.mp3 DEFJAY~6.MP3:DEFJAY - Top20 Countdown@Part22.mp3 DEFJAY~5.MP3:DEFJAY - Top20 Countdown@Part21.mp3 DEFJAY~7.MP3:DEFJAY - Top20 Countdown@Part23.mp3 DEFJAY~8.MP3:DEFJAY - Top20 Countdown@Part24.mp3 DEA163~8.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 21.mp3 DEC434~8.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 22.mp3 DEE627~8.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 23.mp3 DE0724~1.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 24.mp3 DRAKE-~2.MP3:Drake - Take Care feat. Rihanna.mp3 DAVIDG~1.MP3:David Guetta - Without You feat. Usher.mp3 BRIANC~1.MP3:Brian Culbertson - Still Here (feat. Vivian Green).mp3 RIHANN~1.MP3:Rihanna - Talk That Talk feat. Jay-Z.mp3 DEFJAY~9.MP3:DEFJAY - Top20 Countdown@Part31.mp3 DEBCA9~7.MP3:DEFJAY - Top20 Countdown@Part32.mp3 DED4BD~7.MP3:DEFJAY - Top20 Countdown@Part33.mp3 DE00B7~8.MP3:DEFJAY - Top20 Countdown@Part34.mp3 DE2ABD~1.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 31.mp3 DE4CAF~1.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 32.mp3 DE6F00~1.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 33.mp3 DE91B7~1.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 34.mp3 DRAKE-~1.MP3:Drake - HYFR feat. Lil Wayne.mp3 TAIOCR~1.MP3:Taio Cruz - There She Goes feat. Pitbull.mp3 NICKIM~2.MP3:Nicki Minaj - Pound The Alarm.mp3 dorsy1:/media/3331-3532/cd05 # ------------------------------------------------------------------------------------------- Wie bekomme ich zum Beispiel "DEA163~8.MP3"? Wenn die Dateien durchnummeriert sind ist das ja "keine" Kunst......Ich kann heute Abend berichten, ob die von Hand erstellte Indexdatei funktioniert hat oder nicht. In dem Verzeichnis befinden sich allerdings nummerierte Dateien. Also keine "DEA163~8.MP3" sondern nur "01-DEF~1.MP3" usw..... -- Mit freundlichen Grüßen Sebastian Reinhardt LMV Landmaschinenvertrieb- und Service GmbH Hauptstrasse 13 (OT Hartmannsdorf) 01762 Hartmannsdorf- Reichenau Geschäftsführer: Bernd Reinhardt Amstgericht: Dresden Handelsregisternummer: HRB 2574 Umsatzsteuer- Identnr.: DE 206/261/04100 Tel: +49 373 26 1567 Mobil:+49 172 357 3107 Fax: +49 373 26 86804 Mail: snr@lmv-hartmannsdorf.de Web: www.lmv-hartmannsdorf.de Hinweis: Nach aktueller Rechtslage ist das Versenden von unaufgeforderter Werbung strafbar! Die in dieser Nachricht angegebenen persönlichen Daten dürfen nicht für Werbezwecke verwendet oder an Dritte weitergegeben werden! Alle durch unaufgeforderte Werbung und Missbrauch entstehende Kosten werden dem Urheber in Rechnung gestellt! Ich behalte mir vor, gegen den oder die Urheber rechtliche Schritte einzuleiten! -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Am 09.01.2013 14:18, schrieb David Haller:
Hallo,
Am Wed, 09 Jan 2013, Ralf Arndt schrieb:
Am 09.01.2013 08:45, schrieb David Haller:
Ich habe ja aus Neugierde mal gesucht, ob man unter Linux den 8.3 Namen auslesen kann. Aber wenn David schon keine Lösung kennt, brauche ich nicht mehr suchen;-)
mount -t msdos -o ro [-o fat=16] DEV MOUNTPOINT
Damit liest man den 8.3 Namen aus?
oder sowas in der Art...
Ansonsten glaube ich, ich hab das Problem nicht verstanden ...
Vielleicht habe ich das auch falsch verstanden. Ich fasse das mal so zusammen, wie ich es verstehe: 1. Mit irgendeinem Gerät werden die Dateien auf der SD Karte angelegt. Dabei werden auch die 8.3 Namen im FS gespeichert. @Sebastian: Wann und womit werden die Dateien auf die Karte kopiert? 2. Es gibt eine Datei in der die Dateinamen gespeichert sind bzw. gespeichert werden sollen. 3. Sebastian will diese Datei manipulieren und benötigt dazu die "echten" 8.3 Namen. Diese möchte er unter Linux ermitteln.
Ist der Player so extrem doof und liest nur Listen mit den 8.3 Namen im FS. Da müßte man die dann wohl aus dem FS auslesen, nachdem man die SD-Karte befüllt hat. Äh, komm ich der Sache näher? *gähn* Wo hab ich noch gleich die Images hinverlegt ... Hab ich welche mit "LFN" Dateien?
Eine Möglichkeit die 8.3 Namen zu ermitteln besteht in der Verwendung von cmd unter wine. Das habe ich gerade mal rudimentär getestet. Sebastian muss dann halt sehen, wie er unter wine auf die SD Karte zugreift. Mangels Wechseldatenträger mit FAT habe ich das nicht getestet. -- Grüße Ralf Antworten bitte nur in die Mailingliste! PMs bitte an: listpm (@) arndt-de (.) eu -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 09.01.2013 15:00, schrieb Sebastian Reinhardt:
Wie bekomme ich zum Beispiel "DEA163~8.MP3"? Wenn die Dateien durchnummeriert sind ist das ja "keine" Kunst...
Gerade dann ist das die Kunst. AFAIK hängt das von der Reihenfolge ab, in der die Dateien auf dem Medium angelegt werden. Und wenn Du einen großen Schwung per drag & drop rüber geschaufelt hast... -- Grüße Ralf Antworten bitte nur in die Mailingliste! PMs bitte an: listpm (@) arndt-de (.) eu -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
On Wed, January 9, 2013 00:19, Sebastian Reinhardt wrote:
Hallo, Ich habe im Auto einen Loudlink- CD-Wechsler-Emulator. Das Teil hängt am Radio und tut so, als sei er ein CD-Wechsler. Die Musik wird von einer FAT- SD-Karte gelesen. Die Reihenfolge wird durch eine Inhaltsdatei Datei festgelegt, in der die Musikdateien und deren "alte" DOS- Entsprechung (Dateinamen mit max. 8 Zeichen plus Erweiterung von 3 Zeichen) hinterlegt sind. Die Verwaltung erfolgt unter Windoof mit dem Loudlink Explorer, der auch die Inhaltsdateien erstellt. Die meisten werden sich noch an solche Namen erinnern, z.B.: "Progra~1" für "Programme" usw. Einfach alle Namen so abkürzen funktioniert leider nicht (habe ich schon probiert). Außerdem gibt es auch immer wiederkehrende gleiche Namen. Das wird leider nicht einfach weiter gezählt (also "Progra~1", "Progra~2" usw.).
Ich würde das gern per Script lösen, um nicht immer Windoof verwenden zu müssen, da der Loudlink Explorer nicht mit Wine läuft.
Nun die Frage: Wie kann ich diese kurzen DOS- Dateinamen unter Linux "erzeugen"?
mdir aus den mttols zeigt sowohl die Langnamen, als auch die 8.3 Dateinamen an. Grüße, Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am Mi, 09 Jan 2013 15:13:56 CET schrieb Ralf Arndt:
1. Mit irgendeinem Gerät werden die Dateien auf der SD Karte angelegt. Dabei werden auch die 8.3 Namen im FS gespeichert. @Sebastian: Wann und womit werden die Dateien auf die Karte kopiert?
Warum benennst du die Dateien nicht über einen *Link* zu 8.3 am Linux-PC um? Nimm zB exiftool und lies den Titel aus, konvertier ihn zu US-ASCII und schneide ihn beim 7. Zeichen ab. Dann verlinkst du das zu xxxxxxxa.mp3 Gibt es wieder eine Titel, der den ersten 7 Zeichen entspricht, dann wird die Datei xxxxxxxb.mp3 benannt, etc. Ich kenne die Anforderungen nicht, aber du kannst das genauso per Script in ein Albumverzeichnis mit 7+1 Zeichen geben, etc. Damit fallen deine ganzen erwähnten Probleme weg, wenn ich es richtig verstanden habe. Ich bin mir sicher, der David schafft dafür ein Script mit ein paar Zeilen. Je nachdem wie du die Dateien änderst, kopierst du sie dann mit cp oder rsync auf die SD-Karte, Ich habe mir so was ähnliches fürs Handy gemacht, das zufällige Titel aus meiner Musiksammlung als Link auswählt und dafür Playlists erstellt. Problem ist dann nur, dass die Apps am Handy nicht kapieren, die neue Playlist mit gleichem Namen zu aktualisieren, ich muss sie also vorher am Handy manuell löschen. -- Αl -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Ok, habe das mal ausprobiert mit dem üblichen Ergebnis: Der erste Titel der CD (Ordner) wird korrekt wiedergegeben und es werden 9 statt der vorhandenen 8 Titel durch das Radio angezeigt. Ich hatte es aber auch schon mal, dass die CD/ Ordner vom Player komplett ignoriert wurde und erst gar nicht im Radio angezeigt/ vom Player gemeldet wurde. Titel 2 und folgende werden mit dem "Play-Symbol" angezeigt, aber die Zeit bleibt jeweils bei "00:00" stehen und nichts ist zu hören! Wird also nicht abgespielt, aber ich kann mit Titelsprung hin und her springen. @Ralf: Die Dateien werden einfach auf die Karte kopiert mit einem beliebigen Programm. Wenn ich dann die Karte in "Winstone" mit dem Loudlink- Explorer öffne, dann werden die Dateien korrekt angezeigt. Anschließend kann ich über die Funktion "Auf SD-Card schreiben" die "!dirinfo.txt" erzeugen lassen. Normalerweise werden dann auch die mp3's auf die Karte geschrieben. Man kann aber auch die im Ordner bereits vorhandenen beibehalten und z.B. umsortieren usw. . Also "normal" auf Karte kopieren reicht! Die "blöde" Datei ist das Problem! Zurück zu besagter Datei: Es war schon mal von "Steuerzeichen" die Rede. in der zitierten Datei mit "Pitbull...." einer früheren Mail von mir, habe ich noch mal reingeschaut. Hinter jeder Zeile zeigt mir "mcedit" so was an: "^M" (ohne die ") Es könnte sein, das das das Problem ist, neben der 8.3 Geschichte. Wenn ich das durchnummeriere und immer nach dem 6. Zeichen mit ~1 abkürzen kann, dann wäre ich ja schon weiter. Ich hänge das Teil mal an (auch wenn das hier nicht gern gesehen ist, sorry, 1kb). Diese Datei ist von Loudlink-Explorer erzeugt. Vielleicht kann mit jemand sagen, was das für ein Steuerzeichen ist und wie ich das ggf. erzeugen kann. Als Ausblick: mir würde es vorschweben, dass im Dolphin ein Servicemenü- Eintrag per Rechtklick im Ordner der jeweiligen CD die Generierung aufrufen kann. Dabei reicht es die alphabetische Reihenfolge zu berücksichtigen (ich bin ja kein Winstone-User, der nur per "Drag-N-Drop" Dateien ordnen kann ). Dennoch würde mich mal interessieren, wie man auf "DE2ABD~1.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 31.mp3" kommt..... -- Mit freundlichen Grüßen Sebastian Reinhardt
Hallo Sebastian Reinhardt, Am Mittwoch, 9. Januar 2013 23:21 schrieb Sebastian Reinhardt:
... Zurück zu besagter Datei: Es war schon mal von "Steuerzeichen" die Rede. in der zitierten Datei mit "Pitbull...." einer früheren Mail von mir, habe ich noch mal reingeschaut. Hinter jeder Zeile zeigt mir "mcedit" so was an: "^M" (ohne die ") Es könnte sein, das das das Problem ist, neben der 8.3 Geschichte. Wenn ich das durchnummeriere und immer nach dem 6. Zeichen mit ~1 abkürzen kann, dann wäre ich ja schon weiter. Ich hänge das Teil mal an (auch wenn das hier nicht gern gesehen ist, sorry, 1kb). Diese Datei ist von Loudlink-Explorer erzeugt. Vielleicht kann mit jemand sagen, was das für ein Steuerzeichen ist und wie ich das ggf. erzeugen kann. ...
Unter Linux wird das Zeilenende in Textdateien nur durch einen Zeilenvorschub (Bytewert 10 oder Hexadezimal 0A) gekennzeichnet, unter Dos/Windows durch einen Wagenrücklauf an den Zeilenanfang UND einen Zeilenvorschub. Der Wagenrücklauf (Bytewert 13 oder Hexadezimal 0D) ist genau Dein ^M. Du erhältst das in vielen Texteditoren (z.B. kwrite) durch Einstellung des Zeilenendes auf Dos/Windows. -- Herzliche Grüße! Rolf Muth Meine Adressen duerfen nicht fuer Werbung verwendet werden! S/MIME Schluessel 0x25994A0F4AF48400, OpenPGP Public Key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xF8DC41935544C89A
On Wed, January 9, 2013 23:21, Sebastian Reinhardt wrote:
Ok, habe das mal ausprobiert mit dem üblichen Ergebnis:
Der erste Titel der CD (Ordner) wird korrekt wiedergegeben und es werden 9 statt der vorhandenen 8 Titel durch das Radio angezeigt. Ich hatte es aber auch schon mal, dass die CD/ Ordner vom Player komplett ignoriert wurde und erst gar nicht im Radio angezeigt/ vom Player gemeldet wurde. Titel 2 und folgende werden mit dem "Play-Symbol" angezeigt, aber die Zeit bleibt jeweils bei "00:00" stehen und nichts ist zu hören! Wird also nicht abgespielt, aber ich kann mit Titelsprung hin und her springen.
@Ralf: Die Dateien werden einfach auf die Karte kopiert mit einem beliebigen Programm. Wenn ich dann die Karte in "Winstone" mit dem Loudlink- Explorer öffne, dann werden die Dateien korrekt angezeigt. Anschließend kann ich über die Funktion "Auf SD-Card schreiben" die "!dirinfo.txt" erzeugen lassen. Normalerweise werden dann auch die mp3's auf die Karte geschrieben. Man kann aber auch die im Ordner bereits vorhandenen beibehalten und z.B. umsortieren usw. . Also "normal" auf Karte kopieren reicht! Die "blöde" Datei ist das Problem!
Zurück zu besagter Datei: Es war schon mal von "Steuerzeichen" die Rede. in der zitierten Datei mit "Pitbull...." einer früheren Mail von mir, habe ich noch mal reingeschaut. Hinter jeder Zeile zeigt mir "mcedit" so was an: "^M" (ohne die ") Es könnte sein, das das das Problem ist, neben der 8.3 Geschichte. Wenn ich das durchnummeriere und immer nach dem 6. Zeichen mit ~1 abkürzen kann, dann wäre ich ja schon weiter. Ich hänge das Teil mal an (auch wenn das hier nicht gern gesehen ist, sorry, 1kb). Diese Datei ist von Loudlink-Explorer erzeugt. Vielleicht kann mit jemand sagen, was das für ein Steuerzeichen ist und wie ich das ggf. erzeugen kann.
Als Ausblick: mir würde es vorschweben, dass im Dolphin ein Servicemenü- Eintrag per Rechtklick im Ordner der jeweiligen CD die Generierung aufrufen kann. Dabei reicht es die alphabetische Reihenfolge zu berücksichtigen (ich bin ja kein Winstone-User, der nur per "Drag-N-Drop" Dateien ordnen kann ). Dennoch würde mich mal interessieren, wie man auf "DE2ABD~1.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 31.mp3" kommt.....
Deine angehängte Datei war aber im normalen Unixformat (\n als Zeilentrenner) und nicht im Windowsformat (Zeilentrenner: \r\n) Wie bereits gesagt, sollte man das relativ simpel gescriptet kriegen: #v+ chrisbra@host ~/awk % ls -l /mnt/stick/musik insgesamt 96 -rwxr-xr-x 1 chrisbra chrisbra 0 Jan 10 07:39 01. Musikdatei mit einem langen Namen.mp3 -rwxr-xr-x 1 chrisbra chrisbra 2273 Jan 10 07:38 730_addition.diff -rwxr-xr-x 1 chrisbra chrisbra 11666 Jan 10 07:38 SudoEdit.vim -rwxr-xr-x 1 chrisbra chrisbra 0 Jan 10 07:38 foobar.mp3 -rwxr-xr-x 1 chrisbra chrisbra 358 Jan 10 07:38 parse_mdir.awk -rwxr-xr-x 1 chrisbra chrisbra 500 Jan 10 07:38 sudo.cmd -rwxr-xr-x 1 chrisbra chrisbra 777 Jan 10 07:38 testfile -rwxr-xr-x 1 chrisbra chrisbra 1219 Jan 10 07:38 vimgrep_autocmd_corruptions.diff chrisbra@host ~/awk % mdir -a z:\musik Volume in drive Z is Volume Serial Number is 3D97-CF11 Directory for Z:/musik . <DIR> 2013-01-10 7:38 .. <DIR> 2013-01-10 7:38 730_AD~1 DIF 2273 2013-01-10 7:38 730_addition.diff SUDOEDIT VIM 11666 2013-01-10 7:38 SudoEdit.vim 01MUSI~1 MP3 0 2013-01-10 7:39 01. Musikdatei mit einem langen Namen.mp3 FOOBAR MP3 0 2013-01-10 7:38 foobar.mp3 PARSE_~1 AWK 358 2013-01-10 7:38 parse_mdir.awk SUDO CMD 500 2013-01-10 7:38 sudo.cmd TESTFILE 777 2013-01-10 7:38 testfile VIMGRE~1 DIF 1219 2013-01-10 7:38 vimgrep_autocmd_corruptions.diff 10 files 16 793 bytes 1 049 640 960 bytes free 0 2136 chrisbra@R500 ~/awk % mdir -a z:\musik |awk -f parse_mdir.awk 01MUSI~1.MP3:01. Musikdatei mit einem langen Namen.mp3 FOOBAR.MP3:foobar.mp3 #v- wobei parse_mdir.awk so aussieht: $2 ~ /[Mm][Pp]3/ && !/<DIR>/{ fname=$1; ext=$2; $1=""; $2=""; $3=""; $4=""; $5=""; printf("%s.%s:%s\n", fname, ext, gensub(/\s*/, "", 1)); } Damit könnte man jetzt über jedes Verzeichnis iterieren und dort eine !dirinfo.txt Datei anlegen. Falls Du testweise eine dirinfo.txt im DOS-Format anlegen willst, mach aus dem printf("...\n" einfach ein printf("...\r\n" Grüße, Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 09.01.2013 23:21, schrieb Sebastian Reinhardt:
...Wenn ich das durchnummeriere und immer nach dem 6. Zeichen mit ~1 abkürzen kann, dann wäre ich ja schon weiter.
Bist Du nicht. Falls das Problem wirklich durch die 8.3 Namen verursacht ist, benötigst Du die echten 8.3 Namen, wie sie im Dateisystem gespeichert sind. Diese wild zu erspekulieren bringt Dich nicht weiter. Entweder gehst Du nach dem Tipp von Al vor und sorgst vor dem Kopieren dafür, dass die langen Dateinamen der 8.3 Notation entsprechen. Oder Du ermittelst die echten 8.3 Namen aus dem FS auf der SD Karte. Wie das unter Linux geht weiß ich nicht. Den Tipp mit mdir habe ich kurz ausprobiert, habe es damit aber nicht hinbekommen. Versuche es mal damit und hake ggf. mal nach. Unter Windows erzeuge ich Dir die Datei mit einem Einzeiler (ohne Rumgeplänkel wie Variablen setzen, Verzeichnisse wechseln und Kommentaren). -- Grüße Ralf Antworten bitte nur in die Mailingliste! PMs bitte an: listpm (@) arndt-de (.) eu -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Ich habe das jetzt mit der "händisch" erstellten Datei mit der "DOS/Windows Zeilenumbruch"- Einstellung im kwrite noch mal probiert. Siehe da: Es geht! Es lag also an den Zeilenumbrüchen. Wie bekomme ich das per Skript hin? Gibt es da eine Möglichkeit das zu erzeugen? Wenn ich das weiß, kann ich mir ein Skript zusammenbauen, das mir die Dateien mit Nummern ergänzt (geordnet nach Erstellungsdatum) und dann die Indexdatei erstellt. Damit umgehe ich den 8.3-Teil, da alle Dateien eindeutig benannt sind und ich die Dateinamen nach der 6.Stelle abkürzen und mit "~1" ergänzen kann. Nur mal so aus Neugier wie kommt man zu so einem Namen: "DE2ABD~1.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 31.mp3" ? Irgendwie muss das doch errechenbar sein....? -- Mit freundlichen Grüßen Sebastian Reinhardt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Ups, diese E-Mail hatte ich vor meiner letzten noch nicht gelesen. Ich bitte das nachzusehen....
Deine angehängte Datei war aber im normalen Unixformat (\n als Zeilentrenner) und nicht im Windowsformat (Zeilentrenner: \r\n) Es gibt da schon einen kleinen Unterschied zu den "normal" unter Linux erstellten:
SNR@dorsy:~/Loudlink> file cd03_man/\!dirinfo.txt cd03_man/!dirinfo.txt: ASCII text SNR@dorsy:~/Loudlink> file cd01_loutlink/\!dirinfo.txt cd01_loutlink/!dirinfo.txt: ASCII text, with CRLF line terminators --------------------------------------------------------------------------- Die aus "cd03" ist die unter Linux mit "linux-Zeilenumbrich" erstellte und die "cd01" ist die mit dem Loudlink-Explorer erstellte. Die "cd01" habe ich auch hochgeladen.
Wie bereits gesagt, sollte man das relativ simpel gescriptet kriegen:
#v+ chrisbra@host ~/awk % ls -l /mnt/stick/musik insgesamt 96 -rwxr-xr-x 1 chrisbra chrisbra 0 Jan 10 07:39 01. Musikdatei mit einem langen Namen.mp3 -rwxr-xr-x 1 chrisbra chrisbra 2273 Jan 10 07:38 730_addition.diff -rwxr-xr-x 1 chrisbra chrisbra 11666 Jan 10 07:38 SudoEdit.vim -rwxr-xr-x 1 chrisbra chrisbra 0 Jan 10 07:38 foobar.mp3 -rwxr-xr-x 1 chrisbra chrisbra 358 Jan 10 07:38 parse_mdir.awk -rwxr-xr-x 1 chrisbra chrisbra 500 Jan 10 07:38 sudo.cmd -rwxr-xr-x 1 chrisbra chrisbra 777 Jan 10 07:38 testfile -rwxr-xr-x 1 chrisbra chrisbra 1219 Jan 10 07:38 vimgrep_autocmd_corruptions.diff chrisbra@host ~/awk % mdir -a z:\musik Volume in drive Z is Volume Serial Number is 3D97-CF11 Directory for Z:/musik
. <DIR> 2013-01-10 7:38 .. <DIR> 2013-01-10 7:38 730_AD~1 DIF 2273 2013-01-10 7:38 730_addition.diff SUDOEDIT VIM 11666 2013-01-10 7:38 SudoEdit.vim 01MUSI~1 MP3 0 2013-01-10 7:39 01. Musikdatei mit einem langen Namen.mp3 FOOBAR MP3 0 2013-01-10 7:38 foobar.mp3 PARSE_~1 AWK 358 2013-01-10 7:38 parse_mdir.awk SUDO CMD 500 2013-01-10 7:38 sudo.cmd TESTFILE 777 2013-01-10 7:38 testfile VIMGRE~1 DIF 1219 2013-01-10 7:38 vimgrep_autocmd_corruptions.diff 10 files 16 793 bytes 1 049 640 960 bytes free
0 2136 chrisbra@R500 ~/awk % mdir -a z:\musik |awk -f parse_mdir.awk 01MUSI~1.MP3:01. Musikdatei mit einem langen Namen.mp3 FOOBAR.MP3:foobar.mp3 #v-
wobei parse_mdir.awk so aussieht: $2 ~ /[Mm][Pp]3/ && !/<DIR>/{ fname=$1; ext=$2; $1=""; $2=""; $3=""; $4=""; $5=""; printf("%s.%s:%s\n", fname, ext, gensub(/\s*/, "", 1)); }
Damit könnte man jetzt über jedes Verzeichnis iterieren und dort eine !dirinfo.txt Datei anlegen.
Falls Du testweise eine dirinfo.txt im DOS-Format anlegen willst, mach aus dem printf("...\n" einfach ein printf("...\r\n"
Grüße, Christian
Das Script werde ich mir noch mal näher ansehen und ggf. auf meine Bedürfnisse anpassen. So möchte ich die Liste der Dateien nach Erstellungsdatum sortieren....... Danke für eure Hilfe. Wenn jemand Lust hat und das Wissen, wie wäre ein "dolphin-Plugin" zum Erstellen dieser Listendatei? Dann wäre Linux wieder einen Schritt besser.... -- Mit freundlichen Grüßen Sebastian Reinhardt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
On Thu, January 10, 2013 23:26, Sebastian Reinhardt wrote:
Ups, diese E-Mail hatte ich vor meiner letzten noch nicht gelesen. Ich bitte das nachzusehen....
Deine angehängte Datei war aber im normalen Unixformat (\n als Zeilentrenner) und nicht im Windowsformat (Zeilentrenner: \r\n) Es gibt da schon einen kleinen Unterschied zu den "normal" unter Linux erstellten:
SNR@dorsy:~/Loudlink> file cd03_man/\!dirinfo.txt cd03_man/!dirinfo.txt: ASCII text SNR@dorsy:~/Loudlink> file cd01_loutlink/\!dirinfo.txt cd01_loutlink/!dirinfo.txt: ASCII text, with CRLF line terminators --------------------------------------------------------------------------- Die aus "cd03" ist die unter Linux mit "linux-Zeilenumbrich" erstellte und die "cd01" ist die mit dem Loudlink-Explorer erstellte. Die "cd01" habe ich auch hochgeladen.
Das war dann aber nicht die Datei, die du angehängt hast, oder irgendwas hat die vor dem Senden noch konvertiert. Wie gesagt, dass war eine \n terminierte Textdatei. Grüße, Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo! 11.01.2013 00:12, Sebastian Reinhardt schrieb:
Nur mal so aus Neugier wie kommt man zu so einem Namen: "DE2ABD~1.MP3:DEFJAY - ULTRAMIX mit DJ T-Man Part 31.mp3" ? Irgendwie muss das doch errechenbar sein....?
"Wenn die vorangehenden Methoden nicht zu einem eindeutigen 8.3-Dateinamen führen, wird der lange Dateiname (LFN) auf zwei Zeichen gekürzt, gefolgt von einer zufälligen 4-stelligen Hexadezimalzahl, der wiederum eine Tilde samt Ziffer folgt und woran anschließend die Namenserweiterung angehängt wird. Beispiel: „TextFile.Mine.txt“ könnte zu „TE021F~1.TXT“ werden." (s. http://de.wikipedia.org/wiki/8.3) Gruß, Kimmo -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, Am Thu, 10 Jan 2013, Sebastian Reinhardt schrieb:
Ich habe das jetzt mit der "händisch" erstellten Datei mit der "DOS/Windows Zeilenumbruch"- Einstellung im kwrite noch mal probiert. Siehe da: Es geht! Es lag also an den Zeilenumbrüchen.
Wie bekomme ich das per Skript hin? Gibt es da eine Möglichkeit das zu erzeugen?
Hat dir Christian schon am 10.1. um 8:49 geschrieben! Zitat: | Falls Du testweise eine dirinfo.txt im DOS-Format anlegen willst, mach | aus dem printf("...\n" einfach ein printf("...\r\n" ... und ich schrub schon am 9.1. um 14:18: | Vielleicht ist es evtl. sogar was triviales wie ein Zeilenumbruch mit | nur dem Unix-'\n' statt dem DOS/Win '\r\n' ... Mich würde dennoch interessieren, ob es egal ist, wie die 8.3 Dateinamen erzeugt werden, d.h. ob's auch so wie in meiner ersten Mail angedeutet mit "erste 8-$(length LfdNR) Zeichen + '~' + LfdNR [1] Und ausnahmsweise hatte ich an Christans Script mal fast nix auszusetzen :) Einzig das "nullen" der Felder 1-5 könnte man vereinfachen. Statt fname=$1; ext=$2; $1=""; $2=""; $3=""; $4=""; $5=""; ein fname=$1; ext=$2; $1=$2=$3=$4=$5=""; Ich hab zwar noch ein paar andere Varianten angetestet, z.B.: $ MTOOLS_LOWER_CASE=0 mdir -a -i t.flp | gawk ' BEGIN { IGNORECASE=1; } $2 == "MP3" { fname = $1; ext = $2; $1 = $2 = $3 = $4 = $5 = ""; sub("^\\s*",""); printf("%s.%s:%s\r\n", fname, ext, $0); }' die etwas performanter sein müßte[2] (ohne 'MTOOLS_LOWER_CASE=0 mdir ...' braucht's ne Regex um $2 zu matchen, z.B.: BEGIN { IGNORECASE=1; } $2 ~ /^mp3$/ { ... Oder eben die Variante von Christian, wobei man die auch noch um die Anker drumrum ergänzen sollte "($2 ~ /^[Mm][Pp]3$/ ...'. Die Zusatzbedingung '&& !/<DIR>/' halte ich für überflüssig. Achso, ja, ein paar ganz andere Ansätze die mdir-Ausgabe zu parsen hab ich auch noch angetestet, die waren aber alle nix, v.a. wg. evtl. Leerzeichen und anderem Whitespace im langen Dateinamen, selbst wenn man sich da ein 'join' von $6 bis $NF bastelt taugt das nix, weil mehrere Leerzeichen, Tabs und sonstiges zu jew. einem " " kollabiert werden. Da könnte man dann gleich ':' als FS verwenden und dann alles bis zur Stunde und alles ab Minute durch ein 'sub("^\d\d\s*","")' jagen. Das würde funktionieren. Außer bei Dateien mit Whitespace am Anfang. Ergo: Christians Ansatz (bzw. meine Variante davon) ist dann doch einiges sinnvoller. -dnh [1] wenn du mehr als 9 Dateien mit den gleichen ersten 6 Zeichen anlegst, mußt du die Nr zweistellig machen ... usw. Näheres in den WP Artikeln in meiner ersten Mail in diesem Thread. [2] einfaches String-Match als Adresse, einfaches "sub" statt "gensub". Dürfte aber erst bei zu erstellenden Listen von einigen tausend .mp3 meßbar werden ;) Und soviele mp3 will ich zumindest nicht in einem Ordner haben, unabhängig vom Dateisystem. -- The probability of someone watching you is proportional to the stupidity of your action. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hi David! On Sa, 12 Jan 2013, David Haller wrote:
Mich würde dennoch interessieren, ob es egal ist, wie die 8.3 Dateinamen erzeugt werden, d.h. ob's auch so wie in meiner ersten Mail angedeutet mit "erste 8-$(length LfdNR) Zeichen + '~' + LfdNR [1]
Mich würde das auch interessieren.
Und ausnahmsweise hatte ich an Christans Script mal fast nix auszusetzen :)
Oha, welch Ehre ;) Mit freundlichen Grüßen Christian -- Wenn der Knecht wie Elvis singt, die Kuh im Takt ihr Euter schwingt. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
So, dank eurer Anleitung/ Verweis auf den richtigen Weg, habe ich mich mal hingesetzt und heute mal schnell ein Script zusammen gebaut. Das ist nat. nicht wunderschön und lässt sich sicher verbessern, aber für meine Belange reicht es. ------------------------------------------------------------------- #!/usr/bin/perl -w use strict; use POSIX; my @dirlist; my $directory; my $outputfile; my $cd_dir; if ($ARGV[0] !~ /-h/) { $cd_dir=$ARGV[0]; } else { &printhelp; } opendir($directory,$cd_dir) or die ('unable to open directory '.$cd_dir.'!');; @dirlist = readdir $directory; close($directory); @dirlist = sort { lc($a) cmp lc($b) } @dirlist; my $output_file=$cd_dir.'/dirinfo.txt'; open($outputfile,'>'.$cd_dir.'/!dirinfo.txt') or die ('unable to open file'.$cd_dir.'/!dirinfo.txt'); foreach ( @dirlist) { if( $_ ne '.' && $_ ne '..' && $_ !~ 'dirinfo') { print $outputfile substr((split(/\./,uc($_)))[0],0,6)."~1.".(split(/\./,uc($_)))[1].":".$_."\r\n"; } } close($outputfile); exit 0; sub printhelp { print "Help\n"; print "usage: ./dirinfo.pl [cddir]\n"; print "script for generating info file with alphabetical list of music files in a directory for Loudlink.eu audio device\nn"; print " no warranty no support. use for own risk!\n"; exit 0; } ------------------------------------------------------------------- Wer das benutzen will: einfach in einer Datei speichern. chmod 0755 [scriptname] und dann aufrufen. Dabei als einzigen Parameter das Verzeichnis angeben, in dem die "!dirinfo.txt" erstellt werden soll. Die Reihenfolge der Musikstücke wird über den Namen bestimmt. Also am besten durchnummerieren, um die Reihenfolge zu bestimmen. Noch mal Danke für eure Hilfe. Bei schlechtem Wetter, viel Zeit und Muße, werde ich mir mal überlegen so einen Loudlink-Explorer quasi "nach zu programmieren". -- Mit freundlichen Grüßen Sebastian Reinhardt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
So, dank eurer Anleitung/ Verweis auf den richtigen Weg, habe ich mich mal hingesetzt und heute mal schnell ein Script zusammen gebaut. Das ist nat. nicht wunderschön und lässt sich sicher verbessern, aber für meine Belange reicht es. ------------------------------------------------------------------- #!/usr/bin/perl -w use strict; use POSIX; my @dirlist; my $directory; my $outputfile; my $cd_dir; if ($ARGV[0] !~ /-h/) { $cd_dir=$ARGV[0]; } else { &printhelp; } opendir($directory,$cd_dir) or die ('unable to open directory '.$cd_dir.'!');; @dirlist = readdir $directory; close($directory); @dirlist = sort { lc($a) cmp lc($b) } @dirlist; my $output_file=$cd_dir.'/dirinfo.txt'; open($outputfile,'>'.$cd_dir.'/!dirinfo.txt') or die ('unable to open file'.$cd_dir.'/!dirinfo.txt'); foreach ( @dirlist) { if( $_ ne '.' && $_ ne '..' && $_ !~ 'dirinfo') { print $outputfile substr((split(/\./,uc($_)))[0],0,6)."~1.".(split(/\./,uc($_)))[1].":".$_."\r\n"; } } close($outputfile); exit 0; sub printhelp { print "Help\n"; print "usage: ./dirinfo.pl [cddir]\n"; print "script for generating info file with alphabetical list of music files in a directory for Loudlink.eu audio device\n"; print " no warranty no support. use for own risk!\n"; exit 0; } ------------------------------------------------------------------- Wer das benutzen will: einfach in einer Datei speichern. chmod 0755 [scriptname] und dann aufrufen. Dabei als einzigen Parameter das Verzeichnis angeben, in dem die "!dirinfo.txt" erstellt werden soll. Die Reihenfolge der Musikstücke wird über den Namen bestimmt. Also am besten durchnummerieren, um die Reihenfolge zu bestimmen. Noch mal Danke für eure Hilfe. Bei schlechtem Wetter, viel Zeit und Muße, werde ich mir mal überlegen so einen Loudlink-Explorer quasi "nach zu programmieren". -- Mit freundlichen Grüßen Sebastian Reinhardt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Ups, die ist wohl zwei mal raus gegangen. Egal, ich habe gerade das Script noch mal auf einigen Verzeichnisse angewendet und ein Problem bemerkt: Es sollten nicht mehrere Punkte im Dateinamen vorkommen. Da der Player sowieso nur MP3's will, habe ich das einfach "umgangen", indem die Dateinamenserweiterung fest auf "MP3" gesetzt wird: ------------------------------------------------------------ #!/usr/bin/perl -w use strict; use POSIX; my @dirlist; my $directory; my $outputfile; my $cd_dir; if ($ARGV[0] !~ /-h/) { $cd_dir=$ARGV[0]; } else { &printhelp; } opendir($directory,$cd_dir) or die ('unable to open directory '.$cd_dir.'!');; @dirlist = readdir $directory; close($directory); @dirlist = sort { lc($a) cmp lc($b) } @dirlist; my $output_file=$cd_dir.'/dirinfo.txt'; open($outputfile,'>'.$cd_dir.'/!dirinfo.txt') or die ('unable to open file'.$cd_dir.'/!dirinfo.txt'); foreach ( @dirlist) { if( $_ ne '.' && $_ ne '..' && $_ !~ 'dirinfo') { print $outputfile substr((split(/\./,uc($_)))[0],0,6)."~1.MP3:".$_."\r\n"; } } close($outputfile); exit 0; sub printhelp { print "Help\n"; print "usage: ./dirinfo.pl [cddir]\n"; print "script for generating info file with alphabetical list of music files in a directory for Loudlink.eu audio device\n"; print " no warranty no support. use for own risk!\n"; exit 0; } ------------------------------------------------------------ Jetzt sollte es problemlos funktionieren.... -- Mit freundlichen Grüßen Sebastian Reinhardt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, Am Fri, 18 Jan 2013, Sebastian Reinhardt schrieb:
Ups, die ist wohl zwei mal raus gegangen.
Egal, ich habe gerade das Script noch mal auf einigen Verzeichnisse angewendet und ein Problem bemerkt: Es sollten nicht mehrere Punkte im Dateinamen vorkommen. Da der Player sowieso nur MP3's will, habe ich das einfach "umgangen", indem die Dateinamenserweiterung fest auf "MP3" gesetzt wird:
Es gibt noch mehrere andere Probleme ;)
#!/usr/bin/perl -w use strict; use POSIX;
Ok ;) use File::Basename; ## s.u.
my @dirlist; my $directory; my $outputfile; my $cd_dir; if ($ARGV[0] !~ /-h/) { $cd_dir=$ARGV[0]; } else { &printhelp; ^ sollte man nie verwenden. }
Würde ich umdrehen und ne Schleife über die Argumente: if($ARGV[0] ~ /^-h$/) { printhelp; exit(0); } my $dirinfo = "!dirinfo.txt"; my $ext_re = qr/\.(?:mp3|ogg|wav|aiff)/i; foreach my $dir (@ARGV) {
opendir($directory,$cd_dir) or die ('unable to open directory '.$cd_dir.'!');;
if( ! -d $dir ) { print STDERR "Not a directory: $dir\n"; next; } opendir(my $dir_handle, $dir) or die "cannot opendir '$dir': $!\n";
@dirlist = readdir $directory; close($directory); @dirlist = sort { lc($a) cmp lc($b) } @dirlist;
my @dirlist = sort { lc($a) cmp lc($b) } grep { -f "$dir/$_" && $ext_re; } readdir($dir_handle); closedir($dir_handle);
my $output_file=$cd_dir.'/dirinfo.txt';
open($outputfile,'>'.$cd_dir.'/!dirinfo.txt') or die ('unable to open file'.$cd_dir.'/!dirinfo.txt');
my $outfile = $dir . "/", $dirinfo; open($out_handle, ">", $outfile) or die "cannot open file '$outfile': $!\n";
foreach ( @dirlist) { if( $_ ne '.' && $_ ne '..' && $_ !~ 'dirinfo') { print $outputfile substr((split(/\./,uc($_)))[0],0,6)."~1.MP3:".$_."\r\n"; } }
my %generated_names; foreach(@dirlist) { # Behandlung von ., .. und !dirinfo.txt siehe das 'grep' oben # beim readdir. my $new; ### Dateinamen zerlegen und auf 8.3 testen my ($name,$path,$suffix) = fileparse($_, $ext_re); if( length($name) > 8 || $suffix > 3 ) { my ($n, $i) = (6, 1); do { $new = sprintf("%s~%i.%s", substr($name, 0, $n), $i, substr($suffix, 1, 3)); $i++; if($n == 6 && $i > 9) { $n--; } if($n == 5 && $i > 99) { die "ran out of shortnames\n"; } } until( ! defined( $generated_names{$new} ) ); $generated_names{$new}++; } else { $new = $_; } printf $out_handle "%s:%s\n", uc($new), $_; }
close($outputfile); exit 0;
close($out_handle) or die "$!\n"; } Die Hilfe würd ich eher oben hinpacken. Das ganze wg. Übersicht nochmal am Stück: ==== #!/usr/bin/perl -w use strict; use POSIX; use File::Basename; sub printhelp { print "Usage: \n"; } if( $ARGV[0] =~ /^-h$/) { printhelp; exit(0); } my $dirinfo = "!dirinfo.txt"; my $ext_re = qr/\.(?:mp3|ogg|wav|aiff)/i; ### Endungen ggfs. ergänzen foreach my $dir (@ARGV) { if( ! -d $dir ) { print STDERR "Not a directory: $dir\n"; next; } opendir(my $dir_handle, $dir) or die "cannot opendir '$dir': $!\n"; my @dirlist = sort { lc($a) cmp lc($b) } grep { -f "${dir}/${_}" && /$ext_re$/; } readdir($dir_handle); closedir($dir_handle); my $outfile = "${dir}/${dirinfo}"; open(my $out_handle, ">", $outfile) or die "cannot open file '$outfile': $!\n"; my %generated_names; foreach(@dirlist) { # Behandlung von ., .. und !dirinfo.txt siehe das 'grep' oben # beim readdir. my $new; ### Dateinamen zerlegen und auf 8.3 testen my ($name,$path,$suffix) = fileparse($_, $ext_re); if( length($name) > 8 || length($suffix) > 4 ) { my ($n, $i) = (6, 1); do { $new = sprintf("%s~%i.%s", substr($name, 0, $n), $i, substr($suffix, 1, 3)); $i++; if($n == 6 && $i > 9) { $n--; } if($n == 5 && $i > 99) { die "ran out of shortnames\n"; } } until( ! defined( $generated_names{$new} ) ); $generated_names{$new}++; } else { $new = $_; } printf $out_handle "%s:%s\n", uc($new), $_; } close($out_handle) or die "$!\n"; } exit 0; ==== Kurz getestet in nem Verzeichnis mit Konflikten bei den generierten Dateinamen sowie ner Datei mit kurzem Namen der unverändert bleiben kann. Wie gesagt, das mit dem 8.3 ist nicht ganz trivial ;) HTH, -dnh -- I'm too busy to insult you, but your humiliation is important. Please hold. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
On Wednesday 09 January 2013, 23:21 Sebastian Reinhardt
was an: "^M" (ohne die ") Es könnte sein, das das das Problem ist,
"das das das"?! so so so?! Was lernt uns dass(s)? ;-) Ein oder zwei "das" zu viel, gelle!? C. -- "Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr." (“Since the mathematicians have invaded the theory of relativity I do not understand it myself any more.”) - Albert Einstein -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Carsten Neumann, Am Freitag, 25. Januar 2013 03:22 schrieb Carsten Neumann:
On Wednesday 09 January 2013, 23:21 Sebastian Reinhardt
wrote: was an: "^M" (ohne die ") Es könnte sein, das das das Problem ist,
"das das das"?!
so so so?!
Was lernt uns dass(s)? ;-) Ein oder zwei "das" zu viel, gelle!?
Nööö, nur ein "s" zuwenig: Es könnte sein, dass das das Problem ist, -- Herzliche Grüße! Rolf Muth Meine Adressen duerfen nicht fuer Werbung verwendet werden! S/MIME Schluessel 0x25994A0F4AF48400, OpenPGP Public Key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xF8DC41935544C89A
participants (9)
-
Carsten Neumann
-
Christian Brabandt
-
David Haller
-
K. Elo
-
Markus Heinze
-
Ralf Arndt
-
Rolf Muth
-
Sebastian Reinhardt
-
Аl Воgnеr