![]() |
ASCII umwandeln
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo alle zusammen :) ich hab heute versucht normale wörter ind ASCII-Codes um zuändern. Das klappt auch super:) nur das zurückwandeln macht mir reichtlich probleme, den beim wandeln in ascii wird jeder einzelne Buchstabe mit einem # getrennt. Sieht dann so aus
Delphi-Quellcode:
Nur beim zurückwandeln habe ich keine Ahnung wie ich das machen soll, da in ich mit der for schleife und einer zuweisung immer nur ein zeichen speichern kann. Das Problem tritt auf das z.B. ich dann einen Ascii-code von z.b.65 also den Buchstaben A habe und der das dann nur als 6 wertet.
var lText,lErgebnis,laktuellerBuchstabe,lWert :string; z : integer;
begin lText := mText.text; for z:=1 to length (lText) do begin laktuellerBuchstabe:= lText[z]; if laktuellerBuchstabe = ' ' then begin lWert := '32'; lWert := lWert + '#'; end; lErgebnis := lErgebnis + lWert; end; mascii.text:= lErgebnis; end Könnt ihr mir helfen? mit freundlichenGrüßen gaui |
Re: ASCII umwandeln
Vielleicht solltest du deine Typen überdenken. Wenn du ein Array of Char nimmst, kannst du ganz einfach direkt die Zeichen zuweisen. zB ist CharArray[0] := #32; dann ein Leerzeichen.
Oder du speicherst die Ascii-Codes in einem Array of Integer, und kannst dann mit ORD und CHR beliebig hin und her springen. zB könntest du es so machen :
Delphi-Quellcode:
type
TAsciiArray = array of Integer; function TForm1.StringToAscii(Value: String): TAsciiArray; var i : integer; begin SetLength(Result, SizeOf(Value)); for i := 0 to Sizeof(Result) do Result[i] := ORD(Value[i+1]); end; function TForm1.AsciiToString(Values: TAsciiArray): String; var i : integer; begin Result := ''; for i := 0 to SizeOf(Values)-1 do Result := Result + CHR(Values[i]); end; |
Re: ASCII umwandeln
oke... hmm nur leider hab ich das Problem das ich diesen
Zitat:
Delphi-Quellcode:
type
TAsciiArray = array of Integer; //Was wird hier den erstellt? function TForm1.StringToAscii(Value: String): TAsciiArray; //was bedeutet den Value var i : integer; begin SetLength(Result, SizeOf(Value)); // String- oder dynamische Array-Variable (Delphihilfe) aber was bringt die? for i := 0 to Sizeof(Result) do Result[i] := ORD(Value[i+1]); //ich habe dieses ORD schon mal gesehen aber was bedeutet das bzw. der Zweck von ihm end; |
Re: ASCII umwandeln
Hallo. Ja, ich vergaß mich jeglicher Erklärungen dazu.
Delphi-Quellcode:
Beschreibt nichts weiter als eine Typendeklaration. Dabei ist TAsciiArray ein dynamisches Array, welches Integer speichern kann.
type
TAsciiArray = array of Integer; Es wird benötigt, um den Rückgabewert der Funktion festlegen zu können.
Delphi-Quellcode:
würde halt nicht gehen.
function foo : array of Integer
Value (engl., Wert) ist in diesem Fall nichts weiter als ein Parameter, den die Funktion erwartet. Der Name des Parameters kann beliebig sein, jedoch aufgrund des Wiedererkennungswertes verwndet man mit der Zeit für bestimmte Sachen immer wiederkehrende Bezeichnungen.
Delphi-Quellcode:
Hier wird die Größe des von der Funktion zurückgegebenen Arrays festgelegt. Die Größenverhältnise sind hier bei 1:1 (Eingabe = Ausgabe).
SetLength(Result, SizeOf(Value));
Delphi-Quellcode:
ORD() gibt dir den Ordinalwert zurück, in dem Fall ist es der Ascii-Wert. Weiß nicht ob die Funktin noch für andere Sachen zu gebrauchen ist.
Result[i] := ORD(Value[i+1]);
Die 2. Funktion funktioniert einfach nur "andersherum". |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 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