URL: https://www.overclockers.at/applications/solved_langer_dateiname_gt_8_3_65028/page_1 - zur Vollversion wechseln!
Kennt irgendjemand einen verhältnismässig einfachen Weg, um aus einem langen Dateinamen (inkl. Pfad mit Leerzeichen und Punkten, z.b. D:\Eigene Dateien\1. Semester) einen DOS-konformen Pfad/Filename in guter alter 8.3-Manier zu machen?
Sollte nach Möglichkeit im Rahmen einer Batch-Datei verwendbar sein... mit Perl gehts, aber das wäre Overkill für meine Zwecke (ich will nur den Turbo Pascal-Compiler ansteuern, der aber keine langen Dateinamen kennt, was wohl ursächlich mit dem Herstellungsdatum zusammenhängen dürfte).
einfach nach dem 6. zeichen eine tilde(~) und 1, 2, 3...
z.B.: d:\Eigene~1\1.Seme~1
Gruß, M.
ja, das ist mir schon klar - dummerweise hilft mir das wenig, wenn ichs dem Compiler als Argument mitgeben will, weil dann kanns ich eh gleich direkt aufrufen
du meinst zB aus ana win32 app heraus? programmier a kopier-funktion, zB nach tmp.bas
diese schickst dem compiler, der macht a tmp.exe.
und wenn dann a tmp.exe da is benennsts wieder auf den alten namen (nur mit .exe) um.
hmmm, wenns't nix anderes findest, der Delphi compiler sollte TP zu 90% (a paar Sachen sind halt vom Syntax her anders) verstehen und kennt auch lange Dateinamen...
beschreib mal dein prob etwas genauer
Die Idee mitm Kopieren hatte ich auch schon. Dummerweise liefert editplus (weil mit dem sollte das funktionieren) zwar den Programm-Pfad, aber, so wie's scheint, immer nur bis zum ersten "Sonder"zeichen, also wenn die Datei in D:\Eigene Dateien liegt, wird "D:\Eigene" übergeben... ich werds mal mit free pascal versuchen, der wird ja hoffentlich doch schon lange dateinamen kennen
edit: nach einigem probieren hab ichs jetzt so gelöst, dass die datei kopiert wird und, weil beim original übergebenene dateinamen das verzeichnis ja stimmt, die exe einfach nach dateiname.exe kopiert wird - aus bintree.pas wird dann halt bintree.pas.exe
danke für die hilfe!
könntst natürlich auch vorm .exe dranhängen nie rechten 4 zeichen wegschneiden ;-)
-> das mitn abschneiden... passiert wohl immer genau beim leerzeichen. Dateinamen mit Leerzeichen musst in Anführungszeichen (") setzen, wennst da drauf an einfluss hast.
interessanterweise nicht, wenn ich anführungszeichen dazugeb, hab ich halt trotzdem D:\Eigene
hauptsache, es funktioniert
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025