Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi String-Format? (https://www.delphipraxis.net/188173-string-format.html)

stahli 5. Feb 2016 18:07

String-Format?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Vielleicht hat jemand direkt eine Lösung parat...

Ich habe eine alte D7-Anwendung, die eine Textdatei importiert.
Jetzt wurde das externe Format verändert (kenne mich da nicht wirklich aus :oops:).

Ich habe mal einfach planlos AnsiToAscii und AsciiToAnsi versucht. Hat aber nichts gebracht.
Kann vielleicht jemand anhand des Screenshots direkt eine Lösung erkennen?

Oben ist das bisherige Format, unten das neue,
Das alte Format wird in S lesbar incl. Umlauten abgebildet.
Beim neuen Format bin ich erst mal überfragt, zumal die Delphi-Hilfe hier auch nicht funktioniert.

Wenn es nützlich wäre könnte ich statt Textdatei.Readln auch über StringList gehen.

Hat jemand eine Idee, was der sinnvollste/einfachste Ansatz wäre?
(Das Projekt hat aber keine Priorität.)

Luckie 5. Feb 2016 18:09

AW: String-Format?
 
Unicode?

Dalai 5. Feb 2016 18:13

AW: String-Format?
 
Um genau zu sein, ist das eindeutig UTF-8, sowohl der BOM als auch der Umlaut.

MfG Dalai

stahli 5. Feb 2016 18:24

AW: String-Format?
 
Ja, stimmt, habe gerade mal gesucht.
In einer älteren eMail steht "UTF-8" als Ankündigung.

Werde mal nach einer D7-(Not-)Lösung suchen.

Danke. Hilft mir schon mal etwas.

DeddyH 5. Feb 2016 18:36

AW: String-Format?
 
In Delphi 7 dürften UTF8Decode bzw UTF8Encode Deine Freunde sein.

nahpets 5. Feb 2016 18:41

AW: String-Format?
 
Oder aber auch Utf8ToAnsi und AnsiToUtf8 aus der Unit System.
Jedenfalls nehm' ich die immer, wenn ich UTF8-Dateien (zeilenweise) lesen bzw. schreiben muss.

Der schöne Günther 5. Feb 2016 19:10

AW: String-Format?
 
Als kleiner Tipp:

Notepad++ hat, falls es die Kodierung nicht auf Anhieb erkennt, die Möglichkeit das Encoding selbst zu bestimmen (oder zu konvertieren), man sieht dann direkt wie sich die Zeichen ändern. So kann man notfalls etwas herumspielen um zu schauen, welches Encoding denn jetzt das richtige ist.

stahli 5. Feb 2016 19:28

AW: String-Format?
 
Danke, ich gebe Ende nächster Woche Bescheid...

stahli 8. Feb 2016 17:42

AW: String-Format?
 
Dank nochmal. So werde ich weiter kommen.
Utf8ToAnsi kapselt einfach Utf8Decode.

Delphi-Quellcode:
function Utf8ToAnsi(const S: UTF8String): string;
begin
  Result := Utf8Decode(S);
end;
War halt schwierig, da ohne funktionierende Hilfe drauf zu kommen. :?


Die erste Zeile enthält im Original Sonderzeichen, die zu einem Fragezeichen umgewandelt werden, das ich einfach entferne. Dann passt offenbar alles.

Sir Rufo 8. Feb 2016 18:09

AW: String-Format?
 
Diese "Sonderzeichen" nennen sich Bei Google suchenBOM

jaenicke 8. Feb 2016 18:59

AW: String-Format?
 
Da die Datei ein ByteOrderMark hat, kannst du auch einfach TStringList nehmen, die macht den Rest automatisch. ;-)

Sir Rufo 8. Feb 2016 19:15

AW: String-Format?
 
Zitat:

Zitat von jaenicke (Beitrag 1329804)
Da die Datei ein ByteOrderMark hat, kannst du auch einfach TStringList nehmen, die macht den Rest automatisch. ;-)

Sicher, dass Delphi 7 dass schon beachtet? - Könnte ich jetzt nicht so direkt sagen

p80286 8. Feb 2016 20:56

AW: String-Format?
 
Soweit ich weiß Kann die D7 Stringlist nur Ansi!

Gruß
K-H

jaenicke 9. Feb 2016 13:57

AW: String-Format?
 
Stimmt, ich habe nur auf das Profil geachtet und die Angabe im ersten Beitrag übersehen. :oops:

himitsu 9. Feb 2016 14:30

AW: String-Format?
 
Hatte ich auch übersehn.
Das erklärt dann auch, warum das BOM zu einem Fragezeichen wurde.

TNT-Unicode und JEDI haben eine TWideStringList.

k.A. ob Delphi 7 schon die Unit WideStrings.pas kennt.

p80286 9. Feb 2016 14:45

AW: String-Format?
 
TWideStrings sind schon bekannt, aber seit #9 ist das Problem wohl gelöst.
(Solange man sich sprachlich nur in Deutschland oder dem angrenzenden Ausland bewegt, reicht ANSI wohl noch.)
Gruß
K-H

himitsu 9. Feb 2016 14:49

AW: String-Format?
 
Seit D2009 hat TStringList ja eine Erkennung des BOM drin, samt automatischer Decodierung.

stahli 9. Feb 2016 14:54

AW: String-Format?
 
Ja, für mich ist die gefundene Lösung ausreichend. (Ich will mich auch nicht intensiver damit befassen müssen.)
Wenn jemand mehr braucht gibt es ja hier noch ein paar hilfreiche Infos.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:56 Uhr.

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