Grazie mille ho risolto come da te detto, dopo tutto è la stessa cosa!
Chiedo un' altro favore come faccio a girare la stringa esiste un codice? in VB StrReverse
es. "ciao" diventa "oaic"
Sapete se c' è per Delphi? Grazie mille!
Grazie mille ho risolto come da te detto, dopo tutto è la stessa cosa!
Chiedo un' altro favore come faccio a girare la stringa esiste un codice? in VB StrReverse
es. "ciao" diventa "oaic"
Sapete se c' è per Delphi? Grazie mille!
jabjoint
... beh... tornando sul mio discorso..
la sintassi delphi è simile al VB o mi sbaglio io?
cioè... io la ho capita... quella che è stata scritta..
nn sono competente... quindi ipotizzo!
Magari se sapete anche il "Len"(numero byte di una stringa) di vb come ricavarlo...
E magari anche per convertire da carattere ascii a codice.
Cioè es. da 'a' ad '97'
Il contrario del 'chr' che equivale per entrambi i linguaggi.
Insomma.. Mi serve l' Asc di Delphi.
Avete capito spero di siiiiiiiii ciao ciao e grazie!![]()
jabjoint
Per ottenere la lunghezza di una stringa, si utilizza la funzione Length.
Per calcolare invece l'ordinale di un carattere, che corrisponde al suo codice ASCII, si utilizza la funzione Ord.
Viceversa, passando l'ordinale alla funzione Chr, si ottiene il carattere corrispondente.
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Ok, Grazie mille se ti stufo ma ti prego aiutami se no non imparero' mai!
Ho 2 problemi il primo è che dal testo non mi fa convertire in ord
cioe se scrivo:
1°
ShowMessage(intToStr(ord('a'))); //Funge
ma se inserisco..
ShowMessage(ord(Edit1.Text); //Come fare????
il 2° è...
se voglio convertire da "ciao" a "oaic" sai come fare te lo richiedo perchè penso che non l' abbia letto su cmq.. Grazie di tutto ciao!
![]()
jabjoint
non mi risulta che delphi abbia una funzione del genere.
se proprio ti serve creati tu la stringa ingersa con un ciclo
PS: ma a cosa ti serve la stringa inversa?
Per l'inversione della stringa sono d'accordo con bDaniele...credo che non ci sia una particolare utilità in una funzione del genere, quindi dubito che sia già disponibile in Delphi. Spesso si dà come esercizio per imparare a programmare...
Per la domanda sulla ShowMessage, è errato utilizzare Ord su una stringa, ma va utilizzato su un singolo carattere, e nel nostro caso si tratta esattamente del primo.
Fai così, usa l'ormai celeberrima funzione Copy per estrarti il primo carattere della stringa e successivamente passalo alla funzione Ord per ottenere il suo codice ASCII.
Ti ricordo comunque che la casella di testo TEdit possiede un evento, OnKeyPress, che ti permette di intercettare i singoli tasti premuti.
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
o estrai il carattere come ha detto alka o fai cosi:Originariamente inviato da jabjoint
ShowMessage(ord(Edit1.Text); //Come fare????
ShowMessage(ord(Edit1.Text[1]);
il metodo di riferirti ad un carattere in particolare è rischioso nel caso in cui il carattere chi fai riferimento è nullo, quindi o proteggi il tutto o almeno fai il controllo che la lunghezza sia maggiore o uguale all'elemento che tu stai estraendo.
![]()
Grazie ancora ragazzi ho sistemato tutto!!!
jabjoint
//Il programma finale era questo che sono riuscito a realizzare
//grazie al vostro aiuto.
//Da testo a Binario:
procedure TForm1.Button1Click(Sender: TObject);
var r,r2,r3,txt:string;
var n,n2:real;
var k,k2:integer;
Begin
For k := 1 To Length(Memo1.Text) do Begin
txt := Copy(Memo1.Text,k,1);
if txt <> '' Then
txt := IntToStr(ord(txt[1]));
n:=StrToFloat(txt);
While n <> 1 do Begin
n2 := n / 2;
If Int(n2) = n2 Then
r := IntToStr(0)
else
r := IntToStr(1);
//end else.
n := Int(n2);
r2 := r2 + r;
End; //While
r2 := r2 + IntToStr(1);
For k2 := 0 To Length(r2) do Begin
r3 := r3 + Copy(r2,Length(r2)-k2+1,1)
End; //K2
Memo2.Text := r2;
End; //K
End; //Begin
End. //Procedure
Ciao![]()
![]()
![]()
![]()
jabjoint