Autor Beitrag
Magic2001
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32


Delphi XE2
BeitragVerfasst: Do 01.08.13 14:18 
Ich habe folgenden String: 011101011110011010101110
Und möchte daraus folgenden machen: 01110101 11100110 10101110

Wie programmiere ich das am besten? Kann auch mal sein das 2 Ziffern zu viel sind, diese sollen dann am Ende stehen.
Danke!
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 01.08.13 14:25 
Du könntest die Stellen durchgehen und prüfen, ob die Stelle ein vielfaches von 8 ist. Z.B. mit dem MOD-operator.

Ungefähr so (Pseudocode):
ausblenden Quelltext
1:
2:
3:
4:
für n = 1 bis Länge(Binärstring)
  Ausgabe = Ausgabe + n-te Stelle vom Binärstring
  wenn n mod 8 = 0 dann Ausgabe = Ausgabe + ' '
nächstes n

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Magic2001 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32


Delphi XE2
BeitragVerfasst: Do 01.08.13 15:01 
ok, danke das funktioniert gut :)
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 01.08.13 15:03 
Schön. Beachte nur das Ergebnis, wenn Dein String Ausgangsstring eine Länge hat, die ein Vielfaches von 8 ist. Dann ist in der Ausgabe das letzte Zeichen eine Leerstelle. Wenn das nicht gewünscht ist, müsstest Du das noch abfangen.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Do 01.08.13 15:19 
Insbesondere müsstest du eigentlich von hinten nach vorne durchgehen, da z.B.

11001011100 wohl eher 110 01011100 sein soll.
Gammatester
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 328
Erhaltene Danke: 101



BeitragVerfasst: Do 01.08.13 15:31 
Oder vorne (bzw. je nach Interpretation hinten) mit 0 auffüllen, so daß die Stringlänge ohne Leerzeichen ein Vielfaches von 8 ist.