Entwickler-Ecke
Sonstiges (Delphi) - Schleife + Array macht probleme
MagicRain - Mi 19.07.17 12:07
Titel: Schleife + Array macht probleme
Moin Moin,
ich komme leider nicht weiter und brauche mal Eure Hilfe. Und zwar möchte ich eine Tabelle verarbeiten und dann diese in einem Array speichern, um damit später zu rechnen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| BitArray: array[1..10] of Byte; B2Array: array[1..5] of Byte;
for i := 1 to 10 do begin Pos_1 := Pos(input1[i], Meinetabelle_1); BitArray[i]:= StrToInt(Pos_1); end; |
Pos_1 ergibt meine Tabelle. Pos_1 sind die Positionen MeinerTabelle.
1 2 3 4 5 6 7 8 9 0
11 22 11 22 11 22 11 22 11 22 = Meine Tabellen Werte (Bytes)= Tabelle_1.
22 11 22 11 22 Werte Tabelle_2
Jetzt sollte ja jeder Wert von Pos_1 in ein BitArray speichern.
Jetzt möchte ich in meiner 2. Schleife auf diese Werte zugreifen
und damit rechnen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| A := BitArray[i]; B := B2Array[i];
C := A * B;
A := 11; B := 22; C := 242; |
Versuch 1 zur Lösung:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| var F_Pos, f : String; i, i2, Pos_1 : Integer;
for i := 1 to 10 do begin Pos_1 := Pos(input1[i], Tab_1); F_Pos := F_Pos + IntToHex(Pos_1,2); f := f+ IntToHex(pos_1,2); end;
f := Copy(f, 3 , 10);
for i2:= 1 to 10 do begin A := StrToInt('$' + Copy(F_Pos,i2,2)); B := StrToInt('$' + Copy(f,i2,2)); C := A * B; end; |
Beim ersten Schleifendurchlauf, funktioniert das ganze Perfekt, aber beim 2. Durchlauf nicht mehr weil beim ersten A = 11 B = 22, 2 Durchlauf A:= 12 B = 21 irgendwie stimmen die Werte nicht er soll ja immer 2 Zeichen nehmen also 1. A = 11 B = 22 2 schleifen durchlauf A = 22 B = 11....Vielleicht sieht jemand mein Fehler....
Das Problem ist das BitArray und B2Array leider nicht die Werte haben, die ich ihnen ja eigentlich zu gewiesen habe.
Erst wollte ich das ganze von Schleife 1 in einem String speichern und dann verarbeiten, aber das funktioniert nicht, weil ich
nicht weiß, wie ich dann auf die Werte zugreifen kann. Beim 1. Schleifen Durchlauf soll Wert 1 genommen werden, dann Wert 2 usw...
Für jede Hilfe wäre ich dankbar.
MfG
MagicRain
Gammatester - Mi 19.07.17 12:52
MagicRain hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| BitArray: array[1..10] of Byte; B2Array: array[1..5] of Byte; ... C := A * B;
A := 11; B := 22; C := 242; | |
Die Operationen unter ... sollten mM überhaupt nicht kompilierbar sein. Ist das wirklich Dein Code?
MagicRain - Mi 19.07.17 12:57
Das jetzt nur zum Beispiel was ich dann damit vorhabe.
MfG
Gammatester - Mi 19.07.17 13:00
Wie multipliziert man zwei Byte-Arrays?
MagicRain - Mi 19.07.17 13:14
Wollte das so umsetzen..
A := bitarray[i];
B := b2array[i];
C := a * b;
MfG
Delete - Mi 19.07.17 13:47
- Nachträglich durch die Entwickler-Ecke gelöscht -
MagicRain - Mi 19.07.17 14:01
Schonmal danke aber die Werte sind leider nicht konstant das halt mein großes Problem. Muss dem Array immer wieder in einer Schleife die neuen Werte zuweisen.
MfG
Delete - Mi 19.07.17 14:07
- Nachträglich durch die Entwickler-Ecke gelöscht -
MagicRain - Mi 19.07.17 14:15
Ok danke. Das Problem ist nur ich will beim nächsten Schleifen Durchlauf die nächsten Werte einlesen ich dachte das ginge mit Zugriff auf den Schleifen Zähler.
A := Tabelle1[i];
Nur muss ich irgendwie dem Array die Daten zuweisen die vorher in einer Schleife berechnet werden.
MfG
Ed: muss später mal testen vlt liegt der Fehler da das ich mein Array 1..10 deklariert habe und nicht 0..9.
Delete - Mi 19.07.17 14:26
- Nachträglich durch die Entwickler-Ecke gelöscht -
MagicRain - Mi 19.07.17 14:36
Das Versuch ich halt hier glaube da liegt das Problem.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| BitArray: array[1..10] of Byte; B2Array: array[1..5] of Byte;
for i := 1 to 10 do begin Pos_1 := Pos(input1[i], Meinetabelle_1); BitArray[i]:= StrToInt(Pos_1); end; |
BitArray[i]:= strtoint(pos1) ich glaube er erstellt das Array nicht richtig!
Mit freundlichen Grüßen
Delete - Mi 19.07.17 14:46
- Nachträglich durch die Entwickler-Ecke gelöscht -
MagicRain - Mi 19.07.17 14:52
Also Input ist zB vor oder Nachname und Tabelle ist eine Chartabbelle.
Const
Tabelle = 'abcdefghijklmnopqrstuvwxyz';
Input := ' Herr. Test';
Und jetzt holle ich mir mit pos die Position zB vom H von dem Herr. Und das möchte ich dann in meinem Array speichern und weiter damit rechnen. Hoffe das ist etwas verständlicher.
Mit freundlichen Grüßen
Delete - Mi 19.07.17 14:59
- Nachträglich durch die Entwickler-Ecke gelöscht -
MagicRain - Mi 19.07.17 15:52
Ja danke erstmal ich werde später mal wieder Bissel basteln und schauen was sich ergibt!
Mit freundlichen Grüßen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!