![]() |
asci in Integer!!
Hallo
Bräuchte mal hilfe beim umwandeln! Ich möchte diesen String von asci Zeichen 575053575748505553 in einen Solchen String wandeln 925990275 Ich habe es schon so versucht
Delphi-Quellcode:
aber dann sagt man mir:
Datum[m]:=inttostr(ord(String1[m]))
Delphi-Quellcode:
Ich möchte nämlich den integerstring so zuweisen
[Fehler] Unit1.pas(146): Inkompatible Typen: 'Char' und 'String'.
Delphi-Quellcode:
Versuche es schon seit Stunden aber komme nicht darauf.
Datum:String[9];
Danke im voraus!! |
Re: asci in Integer!!
Was ist denn das für eine Berechnungsvorschrift/etc.
575053575748505553 --> 925990275 |
Re: asci in Integer!!
Zitat:
//Edit: Ungetestet (da kein Delphi hier auf der Arbeit) und nur gschwind runtergeschludert:
Delphi-Quellcode:
Keine Ahnung, ob das passt, sollte es aber eigentlich... :gruebel: Wobei, üblicherweise verstecke ich immer mindestens 2 Fehler in solchen Codestückchen :lol:
function ASCIIToString(String s) : String;
var i : Integer; Begin i := 0; result := ''; while i < length(s) do begin temp := Copy(s,i,2); result := result + Chr(StrToInt(temp)); inc(i,2); end; end; Wichtig ist hier auch, dass der ASCII-String natürlich eine gerade Anzahl Zeichen haben muss, sonst knallts ;) Musst also evtl. noch etwas daran arbeiten |
Re: asci in Integer!!
Sowas in der Art sollte es tun...
Delphi-Quellcode:
Function OrdStrToChrStr( Const sOrd: String ): String;
Var len: Integer; i: Integer; iOut: Integer; sPart: String; Begin Result := ''; len := Length( sOrd ); i := 1; While i <= Len Do Begin If i = Len Then Begin sPart := sOrd[ i ]; Inc( i ); End Else Begin sPart := sOrd[ i ] + sOrd[ i +1 ]; Inc( i, 2 ); End; If TryStrToInt( sPart, iOut ) Then Result := Result + Chr( iOut ) Else Raise Exception.Create( 'No int: "' + sPart + '"' ); End; End; Bye Christian Edit: Funktionsnamen geändert... :zwinker: |
Re: asci in Integer!!
Zitat:
Also: 1. Hat der Compiler (wie immer) Recht, dass du aus inttostr einen String bekommst und den in einen Char von Datum reinpressen willst. Besser in dem Fall du hängst einfach an (Datum:=Datum+ ... ) 2. Soll string1[m] auf 57 .. etc zugreifen und nicht auf "5" und als nächstes auf "7" Da musst du wohl noch ein bisschen basteln. (Glück muss man haben. Warum gabs eigentlich keinen roten Kasten :twisted: ) |
Re: asci in Integer!!
Hi leddl,
wenn es [b]IMMER[/b] zwei zeichen sind, hilft dir vielleicht das:
Delphi-Quellcode:
Grüße
function Umwandeln(sSrc: String): String;
var i, dez: Integer; begin Result := ''; i := 1; while i < (length(sSrc) - 1) do begin if not TryStrToInt(sSrc[i] + sSrc[i+1], dez) then dez := 0; Result := Result + Chr(dez); inc(i, 2); end; end; |
Re: asci in Integer!!
Zitat:
//Edit: Ei ei ei, ich sehe gerade, du antwortest nicht auf mein Edit :lol: Ich nix Threadstarter, ich sein nur Helfer mit Durchblick :stupid: |
Re: asci in Integer!!
Delphi-Quellcode:
Datum[m] ist ein Zeichen, also ein Char, die ord-Funktion gibt (in einen String umgewandelt) 2 Zeichen zurück, dadurch klappt das nicht, denke ich.
Datum[m]:=inttostr(ord(String1[m]))
|
Re: asci in Integer!!
Hi leddl,
sorry meinte nicht dich, sondern den Delphieinsteiger ;) hab wohl mal wieder die finger nicht mitm kopp verbunden :) |
Re: asci in Integer!!
Vielen Dank für die vielen Tipps!!
Ich denke jetzt müßte ich es hinkriegen. :thumb: Werde es morgen direkt ausprobieren! Also Danke an alle!! |
Re: asci in Integer!!
|
Re: asci in Integer!!
:shock: Das nenn ich mal dreist :shock: Das Problem ist hier schon gelöst, aber anstatt sich Gedanken über das Gelieferte zu machen wird dann direkt der gleiche Thread nochmal in einem anderen Forum aufgemacht... :wall:
Crosspostings kann ich ja noch nachvollziehen und akzeptieren, aber sowas? :roll: |
Re: asci in Integer!!
[OT]
Sorry, dass ich außer einem OT nichts zu sagen habe, aber das hat mich richtig angesprungen :zwinker: :zwinker: Zitat:
|
Re: asci in Integer!!
Zitat:
|
Re: asci in Integer!!
Das war nicht Dreist von mir!
Hatte nur nicht gedacht gehabt das so schnell soviele antworten kommen und hatte den anderen Thread reingesetzt bevor ich hier die ganzen Antworten gesehen hatte.Hatte halt gedacht um so mehr meine Frage sehen umso eher kriege ich auch Hilfe bei meinem Problem.War natürlich falsch das ich nicht erst hier nach Antworten geguckt hatte, dann hätte sich der andere Thread erledigt.War aber gestern wohl ein bischen von der Rolle.Sorry. Also Danke nochmal an alle,habe mein Problem gerade gelöst! |
Re: asci in Integer!!
Zitat:
|
Re: asci in Integer!!
Das ist natürlich richtig!Sorry nochmal,kommt nicht nochmal vor.Bin nur gerade ein bischen durch den Wind da ich gerade in meine Projektarbeit stecke und mir die Zeit davon läuft.Nächste mal bin ich aufmerksamer.
|
Re: asci in Integer!!
:gruebel: Also der Thread im Delphi-Forum wurde mit haargenau dem selben Text erstellt. Das heißt, den musst Du dir von irgendwo kopiert haben, wahrscheinlich von hier. Erstellt wurde der Thread im Delphi-Forum um 18:04, also hast du so gegen 18 Uhr hier reingeschaut. Und da war der letzte Post schon 1,5 Stunden alt :zwinker:
Außerdem - sorry - du hast doch 2 Minuten nach Erstellen des neuen Threads hier reingeschaut... warum hast du denn das nicht vorher gemacht? :roll: Insofern: Dreist ist noch fast untertrieben! Aber in Ordnung, merks Dir halt fürs nächste Mal :zwinker: Wenn man seine Helfer verärgert, hilft niemand mehr gerne ;) |
Re: asci in Integer!!
Zitat:
|
Re: asci in Integer!!
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 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