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/)
-   -   Delphi Text/ASCII-Datei in ASCII-Code umwandeln (https://www.delphipraxis.net/44322-text-ascii-datei-ascii-code-umwandeln.html)

xineohp 17. Apr 2005 19:36


Text/ASCII-Datei in ASCII-Code umwandeln
 
moin,

Ich habe hier eine Text/Ascii Datei, in der einige Zeichen enthalten sind, die das Notepad nicht darstellen kann (kleine Rechtecke).
Wenn ich die Datei in ein Memo lade werden die Zeichen als Fragezeichen dargestellt. Wenn ich sie in eine Stringliste lade und mit Ord() in Ascii-Code umwandle dann wird â (#226), € (#128) und © (#169) ausgegeben. Aber der Test (die Zeichen wieder in die Datei schreiben) schlägt fehl. Es handelt sich bei der Datei um eine von Adobe InDesign CS erstellte XML Datei, in InDesign stellen die Zeichen einen Zeilenumbruch da. Allerdings stehen sie an (meines Erachtens) falscher/ungültiger Stelle nämlich nicht zwischen Tags, das ganze scheint also irgendwie irregulär zu sein. Allerdings brauche ich die Zeilenumbrüche und muss also wissen welche Zeichen ich in die Datei schreiben muss. Ich hoffe ihr habt eine Idee wie ich das Problem angehen könnte.

Marcward.de 17. Apr 2005 21:51

Re: Text/ASCII-Datei in ASCII-Code umwandeln
 
Wo ist das Problem?
Habe ich irgenwie den Punkt verpasst?

Wenn Du ein XML-Dokument lesen/schreiben möchtest, solltest Du eine entsprechende Bibliothek (z.B. MS-XML) einsetzten (-> diese beachtet dann auch vorhandene Zeichensatztbeschreibungen).

Ist das Einlesen der Datei mit dem Parser nicht möglich - so handelt es sich wahrscheinlich um ein "nicht XML-Konformes" Format.

xineohp 17. Apr 2005 21:53

Re: Text/ASCII-Datei in ASCII-Code umwandeln
 
lassen wir den XML-Teil mal außen vor, ich möchte eigentlich nur alle in der Datei vorhandenen Zeichen mit ihrem ASCII-Code auflisten.

Hansa 17. Apr 2005 22:36

Re: Text/ASCII-Datei in ASCII-Code umwandeln
 
Auswahl der wichtigsten Zeiichen :

Delphi-Quellcode:
function AnsiToIBMAscii(s: string): string;
var
  i: integer;
begin
  Result := '';
  for i := 0 to Length(s) do
  begin
    case s[i] of
      #196: Result := Result + #142; //Ä
      #214: Result := Result + #153; //Ö
      #220: Result := Result + #154; //Ü
      #228: Result := Result + #132; //ä
      #246: Result := Result + #148; //ö
      #252: Result := Result + #129; //ü
      #223: Result := Result + #225; //ß
    else
      Result := Result + s[i];
    end;
  end;
end;

xineohp 18. Apr 2005 17:24

Re: Text/ASCII-Datei in ASCII-Code umwandeln
 
Liste der Anhänge anzeigen (Anzahl: 1)
hm,

anscheinend habe ich mein Problem nicht richtig verdeutlichen können. Dann greife ich jetzt halt zur Brachialmethode :mrgreen: im Anhang befindet sich die besagte Datei. Öffnet sie mit Firefox und sagt mir für was die Fragezeichen stehen oder öffnet sie mit dem IE bzw. Notepad und sagt mir für was die Kästchen stehen.

Muetze1 18. Apr 2005 17:29

Re: Text/ASCII-Datei in ASCII-Code umwandeln
 
Moin!

Meines Erachtens sind das Standard Zeilenvorschübe in UTF-8 korrekt kodiert.

MfG
Muetze1

xineohp 18. Apr 2005 17:31

Re: Text/ASCII-Datei in ASCII-Code umwandeln
 
ha,

Zitat:

Standard Zeilenvorschübe in UTF-8 korrekt kodiert
und woran kann man/ich das erkennen? bzw. wie sind sie kodiert, wie kann ich das simulieren/in die Datei schreiben? Vielen Dank für deine Hilfe.

Muetze1 18. Apr 2005 17:42

Re: Text/ASCII-Datei in ASCII-Code umwandeln
 
Moin!

Wozu überhaupt? Laut XML Standard ist es völligst egal was zwischen den Tags steht - das sollen die Clients etc überlesen - und meiner z.B. macht das auch ohne Probleme. Daher ist die Frage ob du wirklich diese Zeichen brauchst? Wenn es eine richtige XML Datei sein soll, dann schreibe es ganz normal ohne Firlefanz in die Datei und schreibe ohne nicht UTF-8 als encoding rein sondern ISO-8859-15 und gut ist.

MfG
Muetze1

xineohp 18. Apr 2005 17:58

Re: Text/ASCII-Datei in ASCII-Code umwandeln
 
tja, das Dumme ist nur, dass nicht ICH die Datei erstellt habe, sondern Adobe InDesign CS und das bietet nur UTF-8, UTF-16 und Shift-JIS als Kodierung an. Die besagten Zeichen stellen tatsächlich einen Zeilenumbruch da, und genau den brauche ich auch zwingend, warum er nicht zwischen Tags steht kann ich auch nicht sagen :|

Muetze1 18. Apr 2005 18:15

Re: Text/ASCII-Datei in ASCII-Code umwandeln
 
Moin!

Wieso er nicht dazwischen steht? Laut XML Standard sind alle Zeichen mit ASCII Code < 32 nicht zu beachten und zu überlesen. Im Normalfall braucht kein CR/LF drinne sein, das ist nur für den Nutzer, damit er dies besser lesen kann.

Ok, dann lass Adobe dies doch schreiben - aber was kümmert dich das? Wo liegt denn nun dein genaues Problem? Also Adobe schreibt die Datei, selber eine schreiben willst du laut der Reaktion auf meinen vorherigen Post auch nicht und Lesen willste die XML wohl irgendwie auch nicht - also frage ich mich, was soll den mit den Zeichen sein und was genau willst du nun wissen?

MfG
Muetze1


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:26 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