Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ord problem (https://www.delphipraxis.net/20915-ord-problem.html)

mimi 25. Apr 2004 11:01


ord problem
 
ich habe ein kleines problemchen....
und zwar:
wenn ich die funktion ord so aufrufe mit ner zahl wird sie mir als bin zurückgeben aber das möchte ich garnicht ich möchte von dieser zahl den assci code haben und kann sie leider nicht in '' setzen, weil der wert den ich ord gebe ist ein char wert der zurlaufzeit betzimmt wird.....
das problem liegt einfach nur bei ORD, wer kann mir helfen ????

70UR157 25. Apr 2004 11:23

Re: ord problem
 
der ASCII code für die ziffern 0 bis 9 ist einfach die betreffende zahl + 48

Pseudemys Nelsoni 25. Apr 2004 11:28

Re: ord problem
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  c: char;
begin
  c := '5';
  showmessage(inttostr(ord(c)));
end;
und wo ist da nun das problem? ich bekomme 53 raus und keine bin zahl...

mimi 25. Apr 2004 11:33

Re: ord problem
 
ok, also:
Edit2.Text:=Edit2.Text + ascci[ Ord(Edit1.Text[i+1]) ] ;
so sieht meine zeile aus....

70UR157 25. Apr 2004 11:33

Re: ord problem
 
ich glaube er hat/meint richtige zahlen wie 5 nicht '5', möchte aber dann den ASCII code von '5' haben. und dazu bräuchte er dann wie gesagt kein Ord(). es würde reichen die 5 zu nehmen und 48 zu addieren => voila der ascii code von '5'

Luckie 25. Apr 2004 11:41

Re: ord problem
 
Du musst die Zahl auch als String angeben:
Delphi-Quellcode:
ShowMessage(IntToStr(ord('5')));

mimi 25. Apr 2004 11:47

Re: ord problem
 
das kann ich nicht, hier der qullcode ich hoffe dann versteht ihr was ich meine:
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  ascci:array[0..255] of char;
  i:Integer;
begin
  Edit2.Text:='';
  RandSeed:=StrToInt(Edit3.Text);
  CreateRandomValues(ascci);

  for i:=0 to Length(Edit1.Text) do begin
    if not 0..9 in Edit1.Text[i+1] then
    Edit2.Text:=Edit2.Text + ascci[ Ord(Edit1.Text[i+1]) ] ;
  end;

 // ArrayToFile(ascci);
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
var
  ascci:array[0..255] of char;
  i:Integer;
begin
  Edit4.Text:='';

  RandSeed:=StrToInt(Edit3.Text);
  CreateRandomValues(ascci);

  for i:=0 to Length(Edit2.Text) do begin
   Edit4.Text:=Edit4.Text +  chr(GetArrayIndex(edit2.text[i+1],ascci)) ;
  end;
end;

Luckie 25. Apr 2004 11:52

Re: ord problem
 
Warum kannst du das nicht? Du kannst doch jeden Integer in einen String umwandeln. Wo ist da das Problem? Natürlich macht das nur Sinn bei den Ziffern 0 bis 9.

mimi 25. Apr 2004 11:59

Re: ord problem
 
das habe ich alles versucht mit intToStr und so, er liefert mir immer nur #zahlen zurück und ich weiß einfach nicht warum...

Pseudemys Nelsoni 25. Apr 2004 12:29

Re: ord problem
 
#zahlen sind doch auch richtig? ich denk du wllst ascii?

Edit..

Ratte 25. Apr 2004 12:33

Re: ord problem
 
Geht vieleicht
Delphi-Quellcode:
Edit2.Text:=Edit2.Text + ascci[ strtoint(Edit1.Text[i+1])+48];
Ratte

mimi 1. Mai 2004 17:48

Re: ord problem
 
ne, das ist nicht mein ziel mein ziel ist es das ich einfach ein zeichen angebe und er er den RICHTIGEN asccicode zurück gibt und das tut er nich bei zahlen... leider ich habe noch ein problem gemerkt, was ich auch noch nicht so recht verstehen:
ich habe items:array[0..255] of boolean; und da speicher ich jeden tasten druck danach wird eine funktion ausgelöst da habe ich z.b. drinen stehen:
if items[ord'+')] then tueetwas; stehen dann wird das nicht ausgefürht grund:
in der funktion onKeyDown des foums wird eine ander zahl zurück geben als in meiner TGame class warum ????

gibst vileicht noch eine andre möglichkeit an den asscicode schnell ranzukommen ?


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