Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   lange Dateinamen in kurze umwandeln (https://www.delphipraxis.net/124724-lange-dateinamen-kurze-umwandeln.html)

marlem 24. Nov 2008 10:25


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:
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;
das ding bringt keine fehlermeldung und macht einfach gar nichts! und mein Verdacht ist, dass es an den langen datei-und Verzeichnisnamen liegt!
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?

mkinzler 24. Nov 2008 10:41

Re: lange Dateinamen in kurze umwandeln
 
Hallo Namensvetter,

SysUtils.ExtractShortPathName

Bernhard Geyer 24. Nov 2008 10:44

Re: lange Dateinamen in kurze umwandeln
 
Crosspost

DeddyH 24. Nov 2008 10:48

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.

Luckie 24. Nov 2008 10:51

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.

Bernhard Geyer 24. Nov 2008 11:03

Re: lange Dateinamen in kurze umwandeln
 
Zitat:

Zitat von Luckie
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.

Manch einer denkt so weniger Arbeit zu haben.

Luckie 24. Nov 2008 11:09

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.

marlem 24. Nov 2008 11:33

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!

Luckie 24. Nov 2008 11:36

Re: lange Dateinamen in kurze umwandeln
 
Zitat:

Zitat von marlem
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!

Ich bin mir ziemlich sicher, dass du jedes mal wieder das 16-Bit vs. 32-Bit Problem bekommen wirst. Wie gesagt, lanmgfrisitig wird dir deine Frickelei mehr Arbeit kosten als eine einmalige Konvertierung nach 32-Bit.

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.

SirThornberry 24. Nov 2008 12:06

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 13:19 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz