Einzelnen Beitrag anzeigen

rakekniven

Registriert seit: 4. Apr 2008
Ort: Franken
82 Beiträge
 
Delphi XE5 Professional
 
#1

Unicode: Wie kann ich das BOM von einem String entfernen.

  Alt 12. Feb 2010, 13:48
Ich lese eine Textdatei via AssignFile/readln ein. (D2010)

Falls das erste Zeichen ein ";", soll die Zeile ignoriert werden.
Alles Konstrukt von D7:
Delphi-Quellcode:
if Length(S2) > 0 then
 DoLine := Trim(String(S2))[1] <> ';'       // Kommentarzeilen beginnen mit einem ';'
else
 DoLine := FALSE;
Die Datei liegt in UTF8 mit BOM vor.
Die Stringvariable ist vom Typ "RawByteString".

Die erste Zeile hat den Inhalt
'; This file was auto generated by Langdiff Version 2.0.61 on 12.02.2010 09:28:12' Die ersten drei Zeichen sind das BOM.

Wie kann ich den String nun davon säubern, damit ich wieder auf das erste Zeichen prüfen kann?

Ein Trim hilft nicht, auch nicht eine Umwandlung in String (casting) oder via UTF8toString.

Hoffe ich konnte mein Vorhaben einigermassen beschreiben.

Gruß

<edit>
Nach dem Schreiben des Postings ist mir gerade noch eine Idee gekommen:
Mit "WideStrUtils.HasUTF8BOM" prüfen ob das BOM da ist, wenn ja dann die ersten drei Zeichen löschen.
Kling das gut?
</edit>
Frag google
  Mit Zitat antworten Zitat