"We are back" « oc.at

Solved: langer Dateiname -> 8.3

DKCH 29.01.2003 - 14:03 743 8
Posts

DKCH

Administrator
...
Registered: Aug 2002
Location: #
Posts: 3297
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).

mad-mat

Addicted
Avatar
Registered: Feb 2001
Location: Undercity
Posts: 426
einfach nach dem 6. zeichen eine tilde(~) und 1, 2, 3...

z.B.: d:\Eigene~1\1.Seme~1

Gruß, M.

DKCH

Administrator
...
Registered: Aug 2002
Location: #
Posts: 3297
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 ;)

Bimminger

christoph-bimminger.at
Avatar
Registered: Nov 2001
Location: Linz
Posts: 684
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.

mad-mat

Addicted
Avatar
Registered: Feb 2001
Location: Undercity
Posts: 426
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...

Jedi

PROGrAMmER
Avatar
Registered: May 2002
Location: linz
Posts: 1871
beschreib mal dein prob etwas genauer

DKCH

Administrator
...
Registered: Aug 2002
Location: #
Posts: 3297
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!

Bimminger

christoph-bimminger.at
Avatar
Registered: Nov 2001
Location: Linz
Posts: 684
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.

DKCH

Administrator
...
Registered: Aug 2002
Location: #
Posts: 3297
interessanterweise nicht, wenn ich anführungszeichen dazugeb, hab ich halt trotzdem D:\Eigene

hauptsache, es funktioniert
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz