Autor Beitrag
MagicRain
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
BeitragVerfasst: Fr 29.05.09 12:54 
Moin Leute ich habe hier folgendes Problem ich möchte ein String rückwärts einlesen bloß wie ich das mache soll weiß ich nicht! Hoffe jemand von euch kann mir irgendwie helfen :P
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
Const Tabelle = '@!SDVXFGUHbvnc908 *&)5 fjd095j90kcf ja%JKeSFAKDJSLJgJDF 2k34lsdjfkldjf jdsklfjadskgl;jafdkl;gjasdkl;r568r;jvggfl;kd4ui12098  vlkjfdlk;sfjgklfdgjlejt03456erjgrj';

//41C654 == Tabelle
//Tabelle - length = F9

0040F989  |.  8D99 53C64100 LEA EBX,DWORD PTR DS:[ECX+41C653]        ;  // get Tabelle in EBX
0040F98F  |>  0FBE86 54C641>/MOVSX EAX,BYTE PTR DS:[ESI+41C654]      ;  // Ord(Tabelle[i]) ? start from first char
0040F996  |.  0FBE13        |MOVSX EDX,BYTE PTR DS:[EBX]             ;  // Ord(Tabelle[i]) ? start from last char

//MOVSX EAX,BYTE PTR DS:[ESI+41C654]

eEAX := Ord(Tabelle[i]);

//MOVSX EAX,BYTE PTR DS:[ESI+41C654]

eEDX := Ord(Tabelle[i] - F9) oder vlt eEDX := Ord(Tabelle[i]) - F9;


Aber wie mach ich das vom letzen Zeichen bis zum ersten ein zu lesen?

MfG
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 29.05.09 13:21 
Ich weiß zwar nicht, was genau Du mit Einlesen meinst, aber evtl. suchst Du ReverseString aus StrUtils.
MagicRain Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
BeitragVerfasst: Fr 29.05.09 13:27 
Nein. Zeichen weise in hex einlesen....... Tabellen char A = 41h.... halt Ord(Tabelle[i]); hmm

MFG
MagicRain Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
BeitragVerfasst: Sa 30.05.09 03:50 
heftig keiner ne idee ?

:/
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 30.05.09 04:54 
Naja, mir ist nicht klar was du eigentlich meinst und wo das Problem ist. :nixweiss:
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Sa 30.05.09 06:11 
ausblenden Delphi-Quelltext
1:
2:
For i := Length (Tabelle) downto 1 do 
  Foobar(Tabelle[i]);

Foobar wird zuerst mit dem letzten Zeichen, dann mit dem vorletzten usw. aufgerufen. Rückwärts.

_________________
Na denn, dann. Bis dann, denn.
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Sa 30.05.09 09:04 
Die Möglichkeit von user profile iconalzaimar wollte ich auch gerade so ähnlich aufschreiben.
Aber - da ich damit noch nicht so wirklich Erfahrungen habe - würde ich das dann doch eher so schreiben,
indem ich direkt auf die Indexe zugreife:
ausblenden Delphi-Quelltext
1:
2:
for i:=length(umzudrehenderString)-1 downto 0 do
     umgedrehterString:=umzudrehenderString[i];


Oder man kann es meiner Ansicht nach auch so schreiben:
ausblenden Delphi-Quelltext
1:
2:
for i:=0 to length(umzudrehenderString)-1 do
     umgedrehterString:=umzudrehenderString[length(umzudrehenderString)-1-i];

Ich weiß jetzt leider nicht, was sauberer ist.
Ich denke aber mal, dass meine erste Lösung sauberer ist.

Oder haben wir jetzt alle Deine Frage falsch verstanden?
- Dann formuliere sie doch bitte noch einmal genauer.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 30.05.09 16:32 
user profile iconffgorcky hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
2:
for i:=length(umzudrehenderString)-1 downto 0 do
     umgedrehterString:=umzudrehenderString[i];
Erstens hat der erste Buchstabe den Index 1 wie bei user profile iconalzaimar, zweitens legst du so in umgedrehterString jeweils nur einen einzelnen Buchstaben der Reihe nach und überschreibst jeweils den vorherigen damit...

Wenn es um das simple Umdrehen ginge, dann gibt es wie bereits gesagt wurde eine simple Funktion dafür (ReverseString). Aber darum geht es ja nicht.
user profile iconMagicRain hat folgendes geschrieben Zum zitierten Posting springen:
Nein.
Falls das Problem nur das rückwärts zeichenweise Durchgehen ist, hat es user profile iconalzaimar ja geschrieben.
MagicRain Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
BeitragVerfasst: Sa 30.05.09 17:26 
Zitat:
Falls das Problem nur das rückwärts zeichenweise Durchgehen ist, hat es user profile iconalzaimar ja geschrieben.
Das war es danke euch dann doch nocht :P
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Sa 30.05.09 19:32 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
zweitens legst du so in umgedrehterString jeweils nur einen einzelnen Buchstaben der Reihe nach und überschreibst jeweils den vorherigen damit...


Ups, ich meinte das doch eigentlich so:
ausblenden Delphi-Quelltext
1:
2:
for i:=length(umzudrehenderString)-1 downto 0 do     
     umgedrehterString:=umgedrehterString+umzudrehenderString[i];

Da habe ich irgendwie wohl mal wieder so einen Das-ist-ja-viel-zu-einfach-Fehler gemacht...