AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Text richtig einlesen

Ein Thema von stahli · begonnen am 19. Jun 2013 · letzter Beitrag vom 20. Jun 2013
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#1

Text richtig einlesen

  Alt 19. Jun 2013, 00:32
Ich habe eine Textdatei, die ich zeilenweise einlese (XE3, StringList).
Weiß jemand auf Anhieb, wie ich das am einfachsten im richtigen Textformat verarbeiten kann?
Ich kenne mich damit noch gar nicht aus.
Unter D7 hatte ich mal eine AnsiToAscii-Funktion. Jetzt wird das aber sicher anders gelöst.

Die Umlaute und ß werden falsch dargestellt und importiert.
Miniaturansicht angehängter Grafiken
text.jpg  
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Text richtig einlesen

  Alt 19. Jun 2013, 01:57
Delphi-Referenz durchsuchenTStrings.LoadFromStream das mit dem Encoding
oder analog
Delphi-Referenz durchsuchenTStrings.LoadFromFile
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Text richtig einlesen

  Alt 19. Jun 2013, 11:02
Die Umlaute und ß werden falsch dargestellt und importiert.
Naja "richtig" liegt wohl eher im Auge des Betrachters.
Wenn Windows für Batch-Dateien einen anderen Zeichensatz verwendet als für "normalen" Text sind solche Konflikte eigentlich vorprogrammiert.
Eigentlich kaum zu glauben, daß diese CP/M - Altlasten immer noch existieren.

Wenn's darauf ankommt arbeite ich immer noch mit den Numerischen Werten.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Text richtig einlesen

  Alt 20. Jun 2013, 00:37
Ich verstehe nix.

Also ich habe mit LoadFromFile(FileNme, TEncoding.ASCII) und allen verfügbaren anderen Typen versucht.
Korrekt wurde die Datei nie eingelesen. Umlaute waren immer falsch oder es waren gar keine Datensätze eingelesen.

Ich kann natürlich händisch die falschen "Sonderzeichen" durch "korrekte Umlaute" ersetzen.
Aber wie würde man es denn richtig machen?

Im Grunde reicht mir aber auch, die zu importierenden Zeilen umzuwandeln.

Ich habe aber keine Ahnung, in welchem Format die Datei vorliegt.
Die ist so gegeben und nicht zu beeinflussen.

Ich werde es wohl doch selbst mit StringReplace regeln...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von ralfschwalbe
ralfschwalbe

Registriert seit: 19. Jul 2007
Ort: Lichtenstein/Sachsen
133 Beiträge
 
Delphi XE3 Professional
 
#5

AW: Text richtig einlesen

  Alt 20. Jun 2013, 07:55
Ich werfe mal spontan ein "OemToAnsiBuff" ein?
Ralf Schwalbe
viele Grüße...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

AW: Text richtig einlesen

  Alt 20. Jun 2013, 08:23
Fast richtig, OEMToCharBuff , siehe auch hier: http://www.delphipraxis.net/1218493-post6.html
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: Text richtig einlesen

  Alt 20. Jun 2013, 08:29
OEM, ANSI, ASCI codierte Texte wären auch mein Tip.
Erstmal wäre spannend, ob Du selbst die Herkunft/Codierung Deiner Texte kennst.
Ohne Deine Delphi Routinen zu ändern, könntest Du mit einem "handelsüblichen" Editor, die Codierung ändern und feststellen, was Du überhaupt vorliegen hast.
Wenn Du die Texte "selbst" generierst, könntest Du natürlich schon von Anfang an wissen, wie die Codierung ist.
Wenn die Texte bspw. aus irgendeinem dritt-Programm exportiert werden, da einfach mal die Doku befragen...
M.E. gibt es kein einfaches Rezept, diese Codierung automatisch zu erkennen. Das ginge vielleicht noch am besten bei Unicode Texten, die ordnungsgemäß mit BOM versehen sind...
Für einen Importvorgang brauchst Du notfalls verschiedene Routinen, die ASCII, ANSI, OEM beherrschen, eine Vorschau anbieten und den Benutzer wählen lassen.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Text richtig einlesen

  Alt 20. Jun 2013, 08:35
Odda mit diesem Encoding probieren
Delphi-Quellcode:

Encoding := TEncoding.GetEncoding(GetOEMCP);
Quelle http://stackoverflow.com/questions/5...e-oem-encoding
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#9

AW: Text richtig einlesen

  Alt 20. Jun 2013, 09:01
Oh! Ist das deterministisch?
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von ralfschwalbe
ralfschwalbe

Registriert seit: 19. Jul 2007
Ort: Lichtenstein/Sachsen
133 Beiträge
 
Delphi XE3 Professional
 
#10

AW: Text richtig einlesen

  Alt 20. Jun 2013, 09:07
Fast richtig, OEMToCharBuff , siehe auch hier: http://www.delphipraxis.net/1218493-post6.html
Siiicher, siiicher...
Ralf Schwalbe
viele Grüße...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 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