Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi ASCII aus Textdatei lesen+umwandeln (https://www.delphipraxis.net/175563-ascii-aus-textdatei-lesen-umwandeln.html)

becks2013 1. Jul 2013 11:32

ASCII aus Textdatei lesen+umwandeln
 
Hallo

ich komme gerade nicht weiter.
Also ich hab in eine Textdatei Buchstaben zeilenweise geschrieben.
Mit Delphi hab ich diese dann ausgelesen und umgewandelt (ASCII) und als Zahlen ausgegeben.
Jetzt möchte ich das in einer Textdatei zeilenweise Buchstaben,Zahlen stehen. Das das Programm erkennt wenn es eine Buchstabe ist wandel ich das in Zahl um und wenn das eine Zahl ist dann in einen Buchstaben.

Ich weiß wohl das diese eigentlich ganz einfaches Programmieren ist aber im arbeite mich da momentan so langsam ran :-)

Der Quellecode ist von Buchstabe in Zahl:
Delphi-Quellcode:
procedure TForm1.LeseClick(Sender: TObject);
var                  
  f:textfile;
  ch:char;
  b:integer;

begin
  memo1.clear;               
  assignfile(f,'Buchstaben.txt');      
  reset(f);               
  while not eof(f) do            
   Begin
     readln(f,ch);            
     b:=ord(ch);            
     memo1.Lines.add(inttostr(b));      
   end;
  closefile(f);               

end;

end.

p80286 1. Jul 2013 11:57

AW: ASCII aus Textdatei lesen+umwandeln
 
Nur um mich zu vergewissern, daß ich Dich richtig verstanden habe.
In Deiner Date könnte folgendes stehen:

p
x71
H
x48

und Du möchtest, daß es so aussieht:

x71
p
x48
H

soweit richtig verstanden?

Gruß
K-H

baumina 1. Jul 2013 12:09

AW: ASCII aus Textdatei lesen+umwandeln
 
Delphi-Quellcode:
procedure TForm1.LeseClick(Sender: TObject);
var                  
  f:textfile;
  s:String;
  ch:char;
  b:integer;

begin
  memo1.clear;               
  assignfile(f,'Buchstaben.txt');      
  reset(f);               
  while not eof(f) do            
   Begin
     readln(f,s);            
     try
       ch := Chr(StrToInt(s));
       memo1.Lines.add(ch);      
     except
       b:=ord(s[1]);            
       memo1.Lines.add(inttostr(b));      
     end;
   end;
  closefile(f);               

end;

end.
ungetestet

becks2013 1. Jul 2013 13:22

AW: ASCII aus Textdatei lesen+umwandeln
 
@ p80286

nee

So vorher: (z.B)
A
B
C
D
E
F
109
55
66

So Nachher:
65
66
67
68
69
70
m
7
B

Wenn sowas überhaupt geht?!?

@baumina
Kompilieren macht er ohne Probleme aber dann kommt Fehlermeldung

DeddyH 1. Jul 2013 13:29

AW: ASCII aus Textdatei lesen+umwandeln
 
Ungetestet:
Delphi-Quellcode:
var
  sl: TStringlist;
  i, ASCII: integer;
begin
  sl := TStringlist.Create;
  try
    sl.LoadFromFile(Dateiname);
    for i := 0 to sl.Count - 1 do
      if TryStrToInt(sl[i], ASCII) then
        begin
          if (ASCII < 0) or (ASCII > 255) then
            raise Exception.CreateFmt('Kein gültiger ASCII-Wert: %d', [ASCII]);
          sl[i] := Chr(ASCII);
        end
      else
        sl[i] := IntToStr(Ord(sl[i]));
    sl.SaveToFile(NeuerDateiname);
  finally
    sl.Free;
  end;
end;
Sollen auch Werte außerhalb des erweiterten ASCII-Satzes gültig sein, musst Du die Prüfung entsprechend ändern.

baumina 1. Jul 2013 13:39

AW: ASCII aus Textdatei lesen+umwandeln
 
Zitat:

Zitat von becks2013 (Beitrag 1220248)
Kompilieren macht er ohne Probleme aber dann kommt Fehlermeldung

1. Also, wenn wir das Wort "ungetestet" im Zusammenhang mit Codezeilen verwenden, dann gilt der dahingeschriebene Code meist nur als Gedankenanstoß ohne Garantie, dass alles perfekt läuft.

2. Können wir auf Pauschal-Aussagen wie "dann kommt Fehlermeldung" echt sehr schlecht kompetent reagieren. Es muss zwangsläufig von uns die Frage kommen : Was genau kommt für eine Fehlermeldung und an welcher Stelle tritt diese auf.

p80286 1. Jul 2013 13:41

AW: ASCII aus Textdatei lesen+umwandeln
 
Zitat:

Zitat von becks2013 (Beitrag 1220248)
69
70
m
7
B

Wenn sowas überhaupt geht?!?

So wirst Du Probleme bekommen, da nicht klar ist ob die "7" ein Zeichen oder der numerische Wert eines Zeichens ist.
Zitat:

Zitat von becks2013 (Beitrag 1220248)
@baumina
Kompilieren macht er ohne Probleme aber dann kommt Fehlermeldung

Und welche?

Gruß
K-H

becks2013 1. Jul 2013 13:55

AW: ASCII aus Textdatei lesen+umwandeln
 
Achso okey, wie gessagt arbeite mich da so bischen rein.

Sollte eigentlich ein einfache Programm werden.Wenn das Probleme aufwirft die ich jetzt noch nicht wirklich verstehe dann bringt das erstmal nix. Hab gedacht das geht so einfach wie das umwandel von Buchstabe in Zahl ;-)

baumina 1. Jul 2013 13:58

AW: ASCII aus Textdatei lesen+umwandeln
 
Also ich habe inzwischen meinen Code anhand deines Beispiels getestet. Bei mir funktioniert er genau so wie du wolltest.

Zitat:

Zitat von becks2013 (Beitrag 1220248)
vorher:
A
B
C
D
E
F
109
55
66

Nachher:
65
66
67
68
69
70
m
7
B

Und ja, es ist einfach, denn der Befehl CHR ist die Umkehrung von ORD.


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