Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

problem mit tilde in dateinamen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
scorpio



Anmeldungsdatum: 14.03.2006
Beiträge: 1

BeitragVerfasst am: 15.03.2006, 15:00    Titel: problem mit tilde in dateinamen Antworten mit Zitat

hallo,
ich schreibe gerade ein kleines programm, das aus einer playlist (m3u) alle dateinamen ausliest und es soll dann am ende die gesamtgröße der in der playlist enthaltenen files ausgeben.
theoretisch kein problem, doch ich habe dabei nicht bedacht, dass die dateinamen in der playlist im windows format sind, für das programm brauche ich die aber eben in der "dos-schreibweise", also mit tilde und so.

wie kann ich das problem lösen, also aus dem string mit dem dateinamen unter windows einen string mit dos-dateinamen machen??

gibt es bei der verkürzung mit der tilde unter dos irgendeine gesetzmäßigkeit, die man sich zunutze machen kann?

mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 15.03.2006, 18:37    Titel: Antworten mit Zitat

Das könnte es sein:
http://beilagen.dreael.ch/QB/PFAD_UMW.BAS
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Thomas Antoni



Anmeldungsdatum: 12.10.2004
Beiträge: 220
Wohnort: Erlangen

BeitragVerfasst am: 17.03.2006, 19:19    Titel: Antworten mit Zitat

Sazu habe ich mir für die QB-MonsterFAQ Folgendes vorgemerkt:

Answer 8
~~~~~~~~~~~~~~~
[ by /\lipha ( aliphax@hotmail.com - www.geocities.com/aliphax ]


*** Question
How to convert long filenames to 8.3 filenames?

*** Answer
Converting long filenames -> short (8.3) filenames under Windows

QBasic v4.5+ users, remember to load the /L switch on the command line.

Code:

DECLARE FUNCTION GetShortName$ (filename$)
'
'GetShortName$() returns the full pathname in short (8.3)
'file format for a given long filename (with an absolute
'or relative path from the current directory).
'
'Windows must be running for this routine to work
'
'If the file does not exist, then "" is returned
'
'Relative paths that access subdirectories -for
'instance, you are in e:\qbasic\ and wish
'to access e:\qbasic\temp\oldprogram.txt -then make
'sure that you include a period:
'
'a$ = GetShortName$(".\temp\oldprogram.txt")
'
'If you have other DATA in the program, place
'this data before the other data and
'call GetShortName$ at the beginning of the program
'to load the data so it won't interfere with the rest
'of the data
'
'a$ = GetShortName$("")
'
'
CLS
INPUT "Enter in filename: "; long$
PRINT "<"; GetShortName$(long$); ">"
END
'
'
DATA 55       : 'PUSH    BP
DATA 89,E5    : 'MOV     BP,SP
DATA 1E       : 'PUSH    DS
DATA C5,76,06 : 'LDS     SI,[BP+06] ;get longname param
DATA C4,7E,0A : 'LES     DI,[BP+0A] ;get shortname buffer
DATA B8,60,71 : 'MOV     AX,7160    ;func to call
DATA B9,01,00 : 'MOV     CX,0001    ;?? heh
DATA CD,21    : 'INT     21         ;makes call
DATA 1F       : 'POP     DS
DATA 5D       : 'POP     BP
DATA CA,08,00 : 'RETF    0008
'
FUNCTION GetShortName$ (filename$)
   STATIC loaded%, asm$
   '
   IF NOT loaded% THEN 'first time through read asm data
      loaded% = -1

      FOR i% = 1 TO 23
         READ byte$
         asm$ = asm$ + CHR$(VAL("&H" + byte$))
      NEXT i%
   END IF
   '
   IF filename$ = "" THEN EXIT FUNCTION
   '
   original$ = filename$ + CHR$(0) 'null-terminate the string
   origSeg% = VARSEG(original$)
   origOff% = SADD(original$)
   buffer$ = CHR$(0) + SPACE$(128) 'create buffer
   bufSeg% = VARSEG(buffer$)
   bufOff% = SADD(buffer$)

   DEF SEG = VARSEG(asm$)
   CALL ABSOLUTE(BYVAL bufSeg%, BYVAL bufOff%, BYVAL origSeg%, BYVAL origOff%, SADD(asm$))
   DEF SEG
   '
   'filename ends with a null (CHR$(0)). Find it and return
   'characters up to it
   GetShortName$ = LEFT$(buffer$, INSTR(buffer$, CHR$(0)) - 1)
END FUNCTION
 

_________________
+++ Die beliebte QBasic CD-ROM von QBasic.de - 670 MB QBasic-Stuff mit komfortabler HTML-Oberfläche. Für nur 5 EUR bestellbar auf www.antonis.de/qbcdueb.htm +++
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz