![]() |
Alternative zu Replace
Hi,
ich habe in einem Memo 0 und 1 hintereinander. Nichts anderes. Auch keine Leerzeichen. Jetzt sollen die Werte durch Buchstaben ersetzt werden.
Code:
Ich habe das gannz einfach mit Replace gemacht. Nur gibts da ein Problem. Wenn er als 1. alle 00001 replaced, kann es auuch passieren, dass er 0100001100 replaced, obwohl es eigentlich 01000 und 01100 ist.
00001 = A
00010 = B 00011 = C ... Ich hoffe ihr versteht mein Problem. Der zu ersetzende Teil fängt immer an einer 5er stelle an. Sprich bei 1, 6, 11, etc. Kennt jemand eine elegante Lösung? |
Re: Alternative zu Replace
Jo sowas würde ich auch gerne Wissen, brauche das für mein "Spiel"
|
Re: Alternative zu Replace
Sieht so aus, als ob das Binärwerte sein sollen. Also könntest Du sie in dezimale Zahlen wandeln, 64 dazuaddieren und als Char wieder ausgeben.
|
Re: Alternative zu Replace
in einem Memo ist im Prinzip ein String
den kannst du immer 5 Zeichenweise einlesen und das dann machen wie beschrieben Also in der art
Delphi-Quellcode:
Aufruf mit
Function Convert(Value:String):String;
var s:String; j,i:Integer; begin result := ''; while Length(value)>= 5 do begin s := copy(value,1,5); delete(value,1,5); i := 0; for j := 1 to 5 do if s[j]='1' then i := i + 1 shl ( j-1 ); result := result + chr(i + 65); end; end;
Delphi-Quellcode:
Das ist aber nun so blind hinprogrammiert
memo1.text := convert(memo1.text);
must also evtl noch den ein oder anderen Fehler rausmachen. [Edit doch noch nen kleinen fehler gesehn. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz