![]() |
Textformatierung
Also ich weiss nicht ob das hier richtig ist da ich noch neu bin aber ich versuch es einfach mal.
Ich muss in info ein Projekt schreiben zum Thema Textformatierung-Anwendung in der Arbeit mit Zeichenketten/Kryptologie. Ich hab bis jetzt einige Funktionen geschrieben jedoch komme ich bei Text Sperren, Spiegeln, Klein in Groß und Rückgängig nicht weiter und konnte auch in Internet keine Hilfe / Ansätze finden. Könnt ihr mir Helfen und oder Ansätze für eine Lösung geben. Es geht halt darum das ein Text in ein Edit-Feld eingegeben wird und durch klicken, der entsprechenden Button, verändert wird. Ich danke im Vorraus!! |
Re: Textformatierung
Einfach Schleife über Buchstaben:
Delphi-Quellcode:
for i := to Length( str) do
begin Mach was mit str[i] end; |
Re: Textformatierung
Hi und erstmal Herzlich Willkommen in der DP :dp:
Was mkinzler schon gezeigt hat, prinzipiell kannst Du Dir einen String immer wie ein Array (dynamischer Größe) von einzelnen Zeichen vorstellen. Ein solches Array hat eine bestimmte Länge, die mit length ermittelt werden kann. Damit der gezeigte Code funktioniert musst Du natürlich noch einen Startwert für i mit angeben. Das erste Zeichen findest Du bei Strings dabei an der Stelle 1 (bei anderen dyn. Arrays wäre es die 0). Die wichtigsten String-Funktionen findest Du in den Units SysUtils und StrUtils (in der OH findest Du eine Liste aller Funktionen). Die Funktionen lassen sich leicht über den Namen finden (rate mal was UpperCase macht). Möchtest Du einen String "per Hand" spiegeln (es gibt schon eine Funktion, die das kann), dann wirst Du wahrscheinlich den original String Zeichen für Zeichen durchgehen und an die entsprechende Stelle in einen anderen (neuen) String einfügen, der dann das inverse darstellt. Dabei musst Du aber eine Sache beachten, man kann nur auf die Stellen im Speicher zugreifen, die bereits für den Zugriff reserviert wurden. Bei Strings passiert das ganz im Hintergrund, ein
Delphi-Quellcode:
reserviert noch keinen Speicher, der String ist nur ein Zeiger auf den leeren String. Bei der Verwendung
var s, s2: String;
Delphi-Quellcode:
wird im Hintergrund einfach Speicher für Dich reserviert und dann der Wert des statischen String ('Hallo') in diesen Speicher kopiert. Möchtest Du jetzt auf einen zweiten String (s2) zugreifen und hier an der letzten Stelle ein 'H' hinschreiben, dann hast Du das Problem, dass für s2 noch gar kein Speicher reserviert wurde. Dies kannst Du mit der Funktion setLength nachholen (und müsstest Du machen, bevor Du auf den Speicher zugreifen kannst)
s := 'Hallo';
Delphi-Quellcode:
setLength musst Du natürlich nur einmal aufrufen, wenn Du eine neue Größe möchtest, danach hat der übergebene String die richtige Größe.
// würde hier noch zu Fehler führen
s2[5] := 'H'; // reservieren von Speicher setLength(s2, 5); // jetzt klappt's auch! s2[5] := 'H'; Gruß Der Unwissende |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 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