Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi asci in Integer!! (https://www.delphipraxis.net/99767-asci-integer.html)

Delphieinsteiger 17. Sep 2007 14:52


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:
Datum[m]:=inttostr(ord(String1[m]))
aber dann sagt man mir:

Delphi-Quellcode:
[Fehler] Unit1.pas(146): Inkompatible Typen: 'Char' und 'String'.
Ich möchte nämlich den integerstring so zuweisen
Delphi-Quellcode:
Datum:String[9];
Versuche es schon seit Stunden aber komme nicht darauf.

Danke im voraus!!

sirius 17. Sep 2007 15:00

Re: asci in Integer!!
 
Was ist denn das für eine Berechnungsvorschrift/etc.
575053575748505553 --> 925990275

leddl 17. Sep 2007 15:05

Re: asci in Integer!!
 
Zitat:

Zitat von sirius
Was ist denn das für eine Berechnungsvorschrift/etc.
575053575748505553 --> 925990275

Immer 2 Ziffern als ASCII-Codierung für ein Zeichen ;)

//Edit:
Ungetestet (da kein Delphi hier auf der Arbeit) und nur gschwind runtergeschludert:
Delphi-Quellcode:
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;
Keine Ahnung, ob das passt, sollte es aber eigentlich... :gruebel: Wobei, üblicherweise verstecke ich immer mindestens 2 Fehler in solchen Codestückchen :lol:
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

Kedariodakon 17. Sep 2007 15:14

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:

sirius 17. Sep 2007 15:14

Re: asci in Integer!!
 
Zitat:

Zitat von leddl
Zitat:

Zitat von sirius
Was ist denn das für eine Berechnungsvorschrift/etc.
575053575748505553 --> 925990275

Immer 2 Ziffern als ASCII-Codierung für ein Zeichen ;)

Man sieht, dass du aus einer ganz anderen Perspektive schaust :)

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: )

angos 17. Sep 2007 15:15

Re: asci in Integer!!
 
Hi leddl,

wenn es [b]IMMER[/b] zwei zeichen sind, hilft dir vielleicht das:
Delphi-Quellcode:
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;
Grüße

leddl 17. Sep 2007 15:19

Re: asci in Integer!!
 
Zitat:

Zitat von angos
Hi leddl,

wenn es [b]IMMER[/b] zwei zeichen sind, hilft dir vielleicht das:
Delphi-Quellcode:
function Umwandeln(sSrc: String): String;
[...]

Wie gesagt, ich hab nicht viel Zeit drauf verwendet, und es einfach runtergeschrieben. Es ging mir dabei weniger darum, den Code schon perfekt zu machen, als eher darum, dass Delphieinsteiger einen Grundbaustein bekommt, den er für sich noch verbessern kann :zwinker:

//Edit:
Ei ei ei, ich sehe gerade, du antwortest nicht auf mein Edit :lol: Ich nix Threadstarter, ich sein nur Helfer mit Durchblick :stupid:

Progman 17. Sep 2007 15:19

Re: asci in Integer!!
 
Delphi-Quellcode:
Datum[m]:=inttostr(ord(String1[m]))
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.

angos 17. Sep 2007 15:21

Re: asci in Integer!!
 
Hi leddl,

sorry meinte nicht dich, sondern den Delphieinsteiger ;) hab wohl mal wieder die finger nicht mitm kopp verbunden :)

Delphieinsteiger 17. Sep 2007 17:06

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!!

mkinzler 17. Sep 2007 17:09

Re: asci in Integer!!
 
Ist das Problem nun gelöst?
http://www.delphi-forum.de/viewtopic.php?t=76438

leddl 17. Sep 2007 17:36

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:

silver-moon-2000 17. Sep 2007 18:11

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:

Zitat von leddl
//Edit:
Ei ei ei, ich sehe gerade, du antwortest nicht auf mein Edit :lol: Ich nix Threadstarter, ich sein nur Helfer mit Durchblick :stupid:


leddl 17. Sep 2007 18:13

Re: asci in Integer!!
 
Zitat:

Zitat von silver-moon-2000
[OT]

Sorry, dass ich außer einem OT nichts zu sagen habe, aber das hat mich richtig angesprungen :zwinker: :zwinker:

Zitat:

Zitat von leddl
//Edit:
Ei ei ei, ich sehe gerade, du antwortest nicht auf mein Edit :lol: Ich nix Threadstarter, ich sein nur Helfer mit Durchblick :stupid:


Zu dem Zeitpunkt war das auch noch korrekt :zwinker:

Delphieinsteiger 18. Sep 2007 07:52

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!

sirius 18. Sep 2007 08:50

Re: asci in Integer!!
 
Zitat:

Zitat von Delphieinsteiger
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!

Aber ist prinzipiell fair überall zu schreiben, dass man (und wo) Crossposts hat. In dem anderen Forum hätte ohne mkinzler sonst keiner erfahren, dass dieses Problem schon gelöst ist.

Delphieinsteiger 18. Sep 2007 09:13

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.

leddl 18. Sep 2007 10:46

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 ;)

s-off 18. Sep 2007 10:51

Re: asci in Integer!!
 
Zitat:

Zitat von leddl
: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 ;)

[OT]Schonmal drüber nachgedacht, Dich bei irgendeinem Nachrichtendienst zu bewerben? :P [/OT]

leddl 18. Sep 2007 10:53

Re: asci in Integer!!
 
Zitat:

Zitat von s-off
[OT]Schonmal drüber nachgedacht, Dich bei irgendeinem Nachrichtendienst zu bewerben? :P [/OT]

Sorry, wenn du nichts zu sagen hast, dann lass es doch bitte einfach :wall:


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