AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Textformatierung

Ein Thema von tibo · begonnen am 18. Apr 2007 · letzter Beitrag vom 18. Apr 2007
Antwort Antwort
tibo

Registriert seit: 18. Apr 2007
1 Beiträge
 
#1

Textformatierung

  Alt 18. Apr 2007, 12:40
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!!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Textformatierung

  Alt 18. Apr 2007, 12:43
Einfach Schleife über Buchstaben:

Delphi-Quellcode:
for i := to Length( str) do
begin
    Mach was mit str[i]
end;
Markus Kinzler
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: Textformatierung

  Alt 18. Apr 2007, 14:00
Hi und erstmal Herzlich Willkommen in der 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
var s, s2: String; reserviert noch keinen Speicher, der String ist nur ein Zeiger auf den leeren String. Bei der Verwendung
s := 'Hallo'; 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)
Delphi-Quellcode:
// würde hier noch zu Fehler führen
s2[5] := 'H';

// reservieren von Speicher
setLength(s2, 5);
// jetzt klappt's auch!
s2[5] := 'H';
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.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz