Autor |
Beitrag |
MagicRain
Beiträge: 154
WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
|
Verfasst: Mi 19.07.17 12:07
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
Beiträge: 328
Erhaltene Danke: 101
|
Verfasst: Mi 19.07.17 12:52
Für diesen Beitrag haben gedankt: MagicRain
|
|
MagicRain
Beiträge: 154
WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
|
Verfasst: Mi 19.07.17 12:57
Das jetzt nur zum Beispiel was ich dann damit vorhabe.
MfG
|
|
Gammatester
Beiträge: 328
Erhaltene Danke: 101
|
Verfasst: Mi 19.07.17 13:00
Wie multipliziert man zwei Byte-Arrays?
Für diesen Beitrag haben gedankt: MagicRain
|
|
MagicRain
Beiträge: 154
WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
|
Verfasst: Mi 19.07.17 13:14
Wollte das so umsetzen..
A := bitarray[i];
B := b2array[i];
C := a * b;
MfG
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 19.07.17 13:47
- Nachträglich durch die Entwickler-Ecke gelöscht -
Für diesen Beitrag haben gedankt: MagicRain
|
|
MagicRain
Beiträge: 154
WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
|
Verfasst: 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
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 19.07.17 14:07
- Nachträglich durch die Entwickler-Ecke gelöscht -
Für diesen Beitrag haben gedankt: MagicRain
|
|
MagicRain
Beiträge: 154
WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
|
Verfasst: 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.
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 19.07.17 14:26
- Nachträglich durch die Entwickler-Ecke gelöscht -
Für diesen Beitrag haben gedankt: MagicRain
|
|
MagicRain
Beiträge: 154
WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
|
Verfasst: 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
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 19.07.17 14:46
- Nachträglich durch die Entwickler-Ecke gelöscht -
Für diesen Beitrag haben gedankt: MagicRain
|
|
MagicRain
Beiträge: 154
WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
|
Verfasst: 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
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 19.07.17 14:59
- Nachträglich durch die Entwickler-Ecke gelöscht -
Für diesen Beitrag haben gedankt: MagicRain
|
|
MagicRain
Beiträge: 154
WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
|
Verfasst: 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
|
|