![]() |
Umrechnen von String-Werten zu dezimal Code und zurück
Hallo zusammen! Wie schon in einem anderen Tread brauche ich die Hilfe bei einem Programm
womit ich string-Werte, wie z.B. A zu dezimal-code laut Ascii bekommen, also bei A 65... Bei dem Umrechnen von string nach dezimalcode habe ich schon ein Erfolg erzielt:
Delphi-Quellcode:
Mit diesem Quellcode klappt die Umrechnung! Hurrah und danke noch mal nachträglich var i,n: integer; Satz, int: String; for i := 1 to (length(Satz)) do begin n := Ord(Satz[i]); für die Hilfe dabei.. Nur jetzt fehlt mir noch die umgekehrte Rechnung von dezimal zu String.. Einen Ansatz dazu habe ich:
Delphi-Quellcode:
Doch dies klappt noch net, da er bei jedem Wert nur herausspuckt.
var i,n: integer;
Satz, int: String; for i := 1 to length(satz) do begin int := chr(strtoint(satz[i])); Ich bin mir sicher das die Schleife hochgradig falsch ist, jedoch weiß ich mir selber noch nicht richtig zu helfen. :gruebel: |
Re: Umrechnen von String-Werten zu dezimal Code und zurück
Zu was brauchst du eine Schleife?
Delphi-Quellcode:
str:=char(strtoint(int));
|
Re: Umrechnen von String-Werten zu dezimal Code und zurück
Delphi-Quellcode:
weil int ein String und kein Char ist
var i,n: integer;
Satz, int: String; for i := 1 to length(satz) do begin int := int + chr(strtoint(satz[i])); end; und weil Zeichen von chr(0)- char(9) in der Regel nicht darstellbar sind. Grüße Klaus |
Re: Umrechnen von String-Werten zu dezimal Code und zurück
naja, wie speicherst du die dezimalzahlen? sicherlich als string hintereinander. du brauchst da ein trennzeichen (leerzeichen, #, oder was anderes) um zu kennzeichnen, wann ein neuer Wert anfängt.
Dann zerlegst du anhand des trennzeichens den string und wandelst um. ungetested und ohne fehlerprüfung (n>255):
Delphi-Quellcode:
Gruß Frank
satz2:='';
p:=pos(' ',satz); while p>0 do begin n:=StrtoInt(copy(satz,1,n-1)); satz2:=satz2+chr(n); delete(satz,1,n); end; |
Re: Umrechnen von String-Werten zu dezimal Code und zurück
Hier ein Stück Code zum Studieren:
Delphi-Quellcode:
Grüße vom marabu
procedure Test;
var s: String; ba: array of Byte; i: Integer; begin s := 'Stresemann'; SetLength(ba, Length(s)); for i := 1 to Length(s) do ba[Pred(i)] := Ord(s[i]); s := 'wundersam'; // nur zur Verwirrung SetLength(s, Length(ba)); for i := 1 to Length(s) do s[i] := Chr(ba[Pred(i)]); ShowMessage(s); // was wird angezeigt? end; |
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Freeware" nach "Object-Pascal / Delphi-Language" verschoben.
Ist ja kein Programm das vorgestelt wird. |
Re: Umrechnen von String-Werten zu dezimal Code und zurück
Danke für die Tipps! Letzendlich ist es darauf hinausgelaufen:
Delphi-Quellcode:
Jedoch kann ich damit nur einen Buchstaben umrechnen. Ich würde aber gerne ganze Sätzte um rechnen
int :=chr(strtoint(satz));
können. Hätte jemand eine Idee für die Schleife?! |
Re: Umrechnen von String-Werten zu dezimal Code und zurück
Delphi-Quellcode:
Sollte so gehen. "ABC" -> "#65#66#67".
function StringToCharCodes(s: string): string;
begin Result := ''; for i := 1 to length(s) do Result := Result + '#' + inttostr(ord(s[i])); end; Wenn du statt dem Gatter als trennzeichen mit leerzeichen oder nullen auffüllen willst, solltest du dir evtl. mal ![]() |
Re: Umrechnen von String-Werten zu dezimal Code und zurück
Das ist aber leider bei meinem Programm nicht möglich..
Der Dezimalcode darf keine Trennzeichen haben.. Gibt es nicht auch noch eine andere Möglichkeit? |
Re: Umrechnen von String-Werten zu dezimal Code und zurück
eine idee hab ich noch...mach den dezimalcode immer 3-stellig wenn du den string erweiterst
z.b. so:
Delphi-Quellcode:
function StringToCharCodes(s: string): string;
var i:integer; begin Result := ''; for i := 1 to length(s) do Result := Result + format('%.3d',[ord(s[i])]); end; function CharCodesToString(s: string): string; var i,c:integer; begin Result := ''; c:=length(s) div 3; for i := 0 to c-1 do Result := Result + chr(strToInt(copy(s,i*3+1,3))); end; procedure TForm1.Button1Click(Sender: TObject); begin edit2.text:=StringToCharCodes(edit1.text); edit3.text:=CharCodesToString(edit2.text); end; Gruß Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz