[Delphi] Variable rückwärts auslesen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von N30N, 14. September 2006 .

  1. 14. September 2006
    Variable rückwärts auslesen

    Sagen wir mal ich hab in der Variable x den Wert 123 abgespeichert,aber ich will es genau umgedreht haben.Wie stelle ich es an das eine Variable rückwärts ausgelesen wird?
     
  2. 14. September 2006
    AW: Variable rückwärts auslesen

    In ein char array speichern und das array mit einer Zählschleife von hinten aulesen, würde ich sagen..

    Gruß,
    Figger
     
  3. 14. September 2006
    AW: Variable rückwärts auslesen

    fallsde weng vb kannst:

    wenn dus als integer oder long abgeseichert hast musste vorher innen string convertiren
    bei vb: variable = cstr(altevariable)

    ansonsten die länge des gegenstandes herrausbekommen
    bei vb: len(variable)

    und jetzt von hinten aufrollen. geht am besten mit next/for
    bei vb:
    for a = len(variable) to 1
    neuevariable = neuevariable & mid(variable, a, 1)
    next a

    das ist ne hilfestellung da ich kein delphi kann^^
    ps: vb source not tested
     
  4. 14. September 2006
    AW: Variable rückwärts auslesen

    Ich gehe mal davon aus das deine Variable ein String ist. Dann kannst du es so machen:
    Code:
    var
     I : Integer;
    begin
     Result := '';
     for I := Length(*variable*) downto 1 (* Bei Strings wird das erste byte für die Länge genutzt, deshalb nur bis eins *) do
     Result := Result + *variable*[I];
    end;
    
    Btw. In Delphi ist ein Integer und ein Long dasselbe (32 bit mit Vorzeichen)
     
  5. 14. September 2006
    AW: Variable rückwärts auslesen

    Der letzte Post gefiel mir bis jetzt am besten.

    Gibt es noch eine andere Methode?Auch wenn es ein längerer Code ist?

    Ich sollte einen Dezimal in Hexadezimal rechner schreiben.Das ist mir auch gelungen,problem ist halt,dass das ergebniss falsch herum ausgegeben wird.Hier mein Code:

    Code:
    var
     Form1: TForm1;
     Eingabe,Rest : integer;
     Ausgabe,x : string;
    
    implementation
    
    {$R *.DFM}
    
    procedure TForm1.UmrechnenClick(Sender: TObject);
    begin
     Eingabe := strtoint(edit1.text);
     repeat
     Rest := Eingabe mod 16;
     case Rest of
     10:Ausgabe:='A';
     11:Ausgabe:='B';
     12:Ausgabe:='C';
     13:Ausgabe:='D';
     14:Ausgabe:='E';
     15:Ausgabe:='F'
     else
     Ausgabe := inttostr(Rest);
     end;
     Eingabe := Eingabe div 16;
     x := x + Ausgabe;
     until Eingabe = 0;
     label1.caption :=(x);
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
     edit1.clear;
    end;
    
    end.

    Vielleicht kann man direkt im Code schon was ändern damit das Ergebniss gleich richtig herum rauskommt,aber ich denke ihr wisst das besser als ich
     
  6. 14. September 2006
    AW: Variable rückwärts auslesen

    So würde es einfacher und schneller gehen : xD
    Code:
    asm
     CMP EDX, 32 
     JBE @A1
     XOR EDX, EDX
    @A1: PUSH ESI
     MOV ESI, ESP
     SUB ESP, 32
     PUSH ECX 
     MOV ECX, 16 
     CALL CvtInt
     MOV EDX, ESI
     POP EAX 
     CALL System.@LStrFromPCharLen
     ADD ESP, 32
     POP ESI
    end;
    
     
  7. 14. September 2006
    AW: Variable rückwärts auslesen

    Uff,

    also das letzte ist echt zu hoch für mich,hab grade mal ein Jahr Delphi hinter mir,trotzdem danke

    Das andere hilft mir aber weiter,dankeschön!
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.