Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi AssignFile und WideString Dateiname (https://www.delphipraxis.net/143608-assignfile-und-widestring-dateiname.html)

gammatester 19. Nov 2009 12:55

Re: AssignFile und WideString Dateiname
 
Zitat:

Zitat von himitsu
Stimmt, grad nochmal nachgesehn ... mir war aber so, als hätte ich dort auch mal 'nen Puffer gesehn :gruebel:

Aber mal anderstum: Was spricht gegen die neuen OOP-Varianten?

Für jemanden, der es nur so kennt, wahrscheinlich nichts. Ansonsten die üblichen Verdächtigen: Vorhandene Codebasis, Kompatibilität/Portabilität und Gewohnheit/Vertrautheit. Für mich wär's jedenfalls eine grauenhafte Vorstellung, wenn ich ein und dieselbe Funktionen mal mit Streams für Delphi und mit Files für Pascal schreiben müßte.

Bbommel 19. Nov 2009 13:24

Re: AssignFile und WideString Dateiname
 
Zitat:

Zitat von himitsu
AssignFile ist nunmal nativ nur ANSI.

Du meinst das aber jetzt nur im Kontext des Fragestellers, also für Delphi <2009, richtig?

Ich nutze AssignFile/reset/readln hier und da aus alter Gewohnheit noch ganz gerne und es wäre schon blöd, wenn das dann plötzlich beim Öffnen von Dateien am Zeichensatz scheitert. Delphi selbst sagt dazu allerdings:
Delphi-Quellcode:
  procedure (var F: File; FileName: String)
Und String heißt ja seit D2009 eigentlich immer: Ist Unicode.

Bis denn
Bommel

himitsu 19. Nov 2009 13:26

Re: AssignFile und WideString Dateiname
 
Ab Delphi 2009 ist AssignFile, Reset/Rewrite/Append und die FileRecs auf Unicode umgestellt,

aber Read/ReadLn/Write/WriteLn nicht ... diese nehmen zwar UnicodeStrings an, wandeln diese aber intern in Ansi um.

Delphi hat, um Kompatibilitätsproblemen vorzubeugen, die Dateiinhalte ANSI gelassen (es sei denn man stellt die WinAPI auf OEM um, dann wird dort der alte DOS-mäßige OEM-Zeichensatz verwendet und die Daten werden entsprechend konvertiert)

Bbommel 19. Nov 2009 13:33

Re: AssignFile und WideString Dateiname
 
Zitat:

Zitat von himitsu
aber Read/ReadLn/Write/WriteLn nicht ... diese nehmen zwar UnicodeStrings an, wandeln diese aber intern in Ansi um.

Jupp, das ist klar. Das habe ich bei mir so gelöst, dass ich die Zeilen mit readLn in einen RawByteString lese... dann wandelt Delphi erst mal gar nichts um und ich kann mich selbst in aller Ruhe drum kümmern - in der Regel heißt das dann von/nach UTF8 wandeln.

Klar, da könnte ich auch die Encoding-Geschichten von TStringList nehmen, aber da bin ich auch schon ein paar mal mit gestolpert - erst gestern hatten wir hier ja ein schönes Beispiel.

Bis denn
Bommel

himitsu 19. Nov 2009 13:59

Re: AssignFile und WideString Dateiname
 
Und ich nehm seit Jahren oftmals direkt die WinAPIs, da gibt's auch nie Probleme, wobei ich seit 'ner Weile doch öfters mal wieder zu FileStreams tendiere.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:55 Uhr.
Seite 2 von 2     12   

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