![]() |
lange Dateinamen in kurze umwandeln
hallo,
wie kann ich mit Delphi 1 lange datei-und verzeichnisnamen in kurze umwandeln. habe in der code-libary schon geschaut, aber nichts gefunden. ich möchte im selben verzeichnis eine datei kopieren und ihr einen anderen namen geben. zum kopieren habe ich diese funktion genommen die ich beim googeln gefunden habe:
Delphi-Quellcode:
das ding bringt keine fehlermeldung und macht einfach gar nichts! und mein Verdacht ist, dass es an den langen datei-und Verzeichnisnamen liegt!
function CopyFile( src, dest: String): Boolean;
var s, d: TOFStruct; fs, fd: Integer; fnSrc, fnDest: PChar; begin src:=src + #0; dest:=dest + #0; { Trick, um aus einem String ein ASCIIZ zu machen:} fnSrc:=@src[1]; fnDest:=@dest[1]; fs := LZOpenFile( fnSrc, s, OF_READ ); fd := LZOpenFile( fnDest, d, OF_CREATE ); if LZCopy( fs, fd ) < 0 then Result:=False else Result:=True; { Dateien schliessen} LZClose( fs ); LZClose( fd ); end; es ist ein 16bit Delphi-Programm das unter nt läuft! jetzt brauche ich ne konvertierungsrotine die aus einem langen pfad einen 16bit-tauglichen macht! weiß jemand wie das geht? |
Re: lange Dateinamen in kurze umwandeln
Hallo Namensvetter,
SysUtils.ExtractShortPathName |
Re: lange Dateinamen in kurze umwandeln
|
Re: lange Dateinamen in kurze umwandeln
Wo kommen die langen Dateinamen denn eigentlich her? Aus dem 16-Bit-Programm ja wohl nicht, das kennt nur kurze Dateinamen.
|
Re: lange Dateinamen in kurze umwandeln
Und warum entwickelt man mit einem 16-Bit, total veraltetem Compiler für ein 32-Bit System? Sollte es sich um alten Code handeln, sollte man ihn ohne weiteres auch mit einem 32-Bit Compiler (sprich einer aktuellen Delphiversion) kompilieren lassen.
|
Re: lange Dateinamen in kurze umwandeln
Zitat:
![]() |
Re: lange Dateinamen in kurze umwandeln
Nun dann sollte dieser Person gesagt werden, dass er bei jeder Anpassung / Erweiterung immer wieder diese Probleme haben wird. Wenn er das Ding aber endlich mal mit einer aktuellen Delphiversion kompiliert, dann hat er zwar im ersten Moment etwas mehr Arbeit, was sich allerdings längerfristig wieder auszahlt.
|
Re: lange Dateinamen in kurze umwandeln
tach,
das programm ist schon 8 jahre alt und die firma hat kein geld dieses Program neu programmieren zu lassen. die konvertierung von delphi 1 auf delphi 2 wird auch nicht so easy, weil 16bit-komponenten von einem buch von herrn kosch verwendet wird! da muß ich erst nach 32bit-alternativen schauen. Außerdemsind es 101 units! die langen dateiennamen kommen von einem netzwerkserver (NT oder Win 2000 weiß ich nicht genau!) musste jetzt halt die pfade und dateinamen aufv 16bit anpassen und dann ging es! hat aber bißchen gedauet, bis ic kapiert habe, dass das derr haken war. also die kopierroutine funzt. die war nicht schuld! danke! |
Re: lange Dateinamen in kurze umwandeln
Zitat:
Und in der zeit, die du gebraucht hast das Dateinamenprobklem zu lösen, hättest nutzen können um nach 32-Bit Alternativen für deine Komponentn zu suchen. Aber gut, wenn der Chef nicht anders will, dann sei es so. |
Re: lange Dateinamen in kurze umwandeln
Wenn keine Zeit ist alles auf eine neue Delphiversion zu bringen würde ich wenigstns das neue auf eine neue Version bringen und das per DLL einbinden. Oder eben den Kern in einer neuen Version entwickeln und die alten Sachen per DLL einbinden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz