AGB  ·  Datenschutz  ·  Impressum  







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

Textdatei mit Sonderzeichen auslesen

Ein Thema von Cöster · begonnen am 23. Dez 2007 · letzter Beitrag vom 24. Dez 2007
Antwort Antwort
Seite 1 von 2  1 2      
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#1

Textdatei mit Sonderzeichen auslesen

  Alt 23. Dez 2007, 18:51
HI!

Ich hab ein paar Probleme damit, eine Textdatei auszulesen. Das liegt wohl daran, dass sie Sonderzeichen und Co. enthält. Mein Test-Code sieht so aus:

Delphi-Quellcode:
var
  Form1: TForm1;
  F: TextFile;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   S: string;
begin
   ReadLn(F, S);
   Memo1.Lines.Add(S);
end;

procedure TForm1.FormCreate(Sender: TObject);
const
   Path = 'C:\Users\Cöster\AppData\Roaming\Meine Die Schlacht um Mitte' +
      'lerde-Dateien\Replays\to be watched\gvsM,Fangorn,Uruks.rep';
begin
   AssignFile(F, Path);
   Reset(F);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   CloseFile(F);
end;
Wenn ich Button1 nun mehmals klicke werden allerdings immer nur lückenhafte Bruchstücke der Datei in mein Memo geschrieben. Wie erhalte ich den gesamten Text der Datei?
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Textdatei mit Sonderzeichen auslesen

  Alt 23. Dez 2007, 18:53
Was verstehst du unter Sonderzeichen? Und wie ist die Codierung der Datei?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#3

Re: Textdatei mit Sonderzeichen auslesen

  Alt 23. Dez 2007, 19:01
bring doch mal 'n bespielinhalt der datei ... welche du einlesen möchtest...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Textdatei mit Sonderzeichen auslesen

  Alt 23. Dez 2007, 19:10
Meine Glaskugel sagt mit das es sich um eine Unicode-Codierte Textdatei handelt. Mit Elpack (TLMDWideStringList), TNTWare (TNTWideStringList), oder dem JCL (TWideStringList) sollte sich das lesen lassen. Im Forum dürften auch einige Beispiel zum einlesen von Unicode-Textdateien finden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Textdatei mit Sonderzeichen auslesen

  Alt 23. Dez 2007, 19:27
Dies ist der Anfang der Textdatei:

Code:
BFMEREPLE÷GG*úGG.  d             L a a t s t e  h e r h a l i n g  ×       5 ÈV e r s i e  1 . 0 3   N o v  2 8   2 0 0 5   1 7 : 1 5 : 1 0     pË
7¦+!d    M=000maps/map mp fangorn;MC=0;MS=0;SD=22162;S=Hlaurentlefou,54652BC4,10643,FT,1,4,-1,0,1:Huruksofzillegem,5386925B,12808,FT,5,6,-1,1,1:X:X:X:X:X:X:; 1                  ë        a          
   a         
   a            `         .     ºƒ@D‚¥D ÈA   é     ¾     é     –              ÿÿÿÿ    .      ƒùD *òD ´ B   é     …           5  Ü6`DƒÎ¼D ÈAäË@   ë        é     Ä     é     –               #   .      ý;E î|D ÈA%   é     Ì  &  é     V  '  é     ³  (   .     ]ÂyD`¾D ÈA*   .     ʦ©DàZÂD  A+            ÿÿÿÿ 2   #            m  ¦  2   é     Ì  ¨  4   .     •NDBü¨D ÈA6   é     g  ;  .     Š˜›DŠíDü˜B<        |  Ø=EcãèD ÈA6À<  ë     A  é     ¨  A  .     ªIDAØxD HBC  .     Ô3HDª.uD HBF  #           7     ’   F  é     ³  I  .     Ðb®Dn¾D  AM  é     Ê  N       Ê  <ƒ{D,ü*D ÈA    S              T  ë     U  é     Ì  Z  .     Þœ¥DV¬D ˜Bc  #        ó   i  ]  Æ   c  é     ³  d  .     ¤*DZÛÂD  Ae  I      
Die Stelle, die mich interessiert, ist ";S=Hlaurentlefou,54652BC4,10643,FT,1,4,-1,0,1:Huruksofzillegem,5386925B,12808,FT,5,6,-1,1,1". Mit meinem Code kriege ich sie aber nicht in mein Memo.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Textdatei mit Sonderzeichen auslesen

  Alt 23. Dez 2007, 19:30
Bist Du Dir sicher, dass es sich um eine Textdatei handelt?
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
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Textdatei mit Sonderzeichen auslesen

  Alt 23. Dez 2007, 20:17
Code:
L a a t s t e  h e r h a l i n g
Die Leerstellen deuten auf Unicode hin. Dabei ist ein Zeichen nicht 1, sondern 2 Byte lang (IMHO! Vllt. verwechsle ich das auch mit UTF-8 oder so...). Sprich, es ist so aufgebaut: XX 00. Wenn Delphi den Code jetzt als Ansi-String einliest, trifft es auf die 00 und schneidet dort den Stringt ab.
Versuch mal, es mit einem Filestream einzulesen und dann die Stelle herauszukopieren. Vllt. kannst du es auch direkt in einen WideString kopieren, aber mit WideStrings habe ich noch nie gearbeitet, von daher kann ich das nicht sicher sagen.
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Textdatei mit Sonderzeichen auslesen

  Alt 23. Dez 2007, 21:53
Danke schonmal für eure Antworten.
Zitat von DeddyH:
Bist Du Dir sicher, dass es sich um eine Textdatei handelt?
Naja, sie beinhaltet auch Text. "laurentlefou" und "uruksofzillegem" sind bspw. Spielernamen und die beiden achtstelligen Zahlen zwischen den Kommas sind deren IPs (hexadezimal).

Wenn ich bei 5mal Button 1 klicke steht im Memo:

Code:
BFMEREPLE÷GG*úGG.
7¦+!d
kI.„d
kI.„d
 ²È
Teils wird die Datei also richtig gelesen, nur andere Teile werden leider total übersprungen

S als Widestring zu deklarieren, hat nix geändert. Mit TFileStream komm ich auch nicht viel weiter

Zitat von Bernhard Geyer:
Meine Glaskugel sagt mit das es sich um eine Unicode-Codierte Textdatei handelt. Mit Elpack (TLMDWideStringList), TNTWare (TNTWideStringList), oder dem JCL (TWideStringList) sollte sich das lesen lassen. Im Forum dürften auch einige Beispiel zum einlesen von Unicode-Textdateien finden.
Ich lad mir gerade die Jedis runter und schau dann mal, wie weit ich komme
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Textdatei mit Sonderzeichen auslesen

  Alt 23. Dez 2007, 22:20
Warum willst du es überhaupt in ein Memo laden? Lad es mit einem Filestream oder ähnlichem und lies die Bytes aus.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#10

Re: Textdatei mit Sonderzeichen auslesen

  Alt 23. Dez 2007, 23:24
wie wird die datei eigentlich erstellt? mit welchem progy?

ps: was du machen kannst, ist die datei binär einzulesen und die sichtbaren zeichen auszufiltern und im memo darzustellen also im groben

Delphi-Quellcode:
if (b>$27) and (b<127) then
begin //lesbar
<HTH>
  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 06:02 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