![]() |
Buchstaben an andere Stelle setzten
Hi,
also.. ich möchte in einem String z.B. den 2. Buchstaben (Buchstabe:=Text[2]) an eine andere z.B. die 1. Stelle setzten. Also z.B.: aus 'Hallo' 'aHllo' oder die 2. an die 3. stelle: aus 'Hallo' 'Hlalo'. Also wie man den Buchstaben herausfindet weiß ich ja, nur wie man ihn dann verschiebt das weiß ich nicht. Gruß Mariaki |
Re: Buchstaben an andere Stelle setzten
Die einfachste Methode dürfte sein: Buchstabe merken, mit Delete löschen und mit Insert an neuer Stelle einfügen.
|
Re: Buchstaben an andere Stelle setzten
oder die beliebte Swap-Funktion :mrgreen:
Delphi-Quellcode:
var s: String; // s ist der String, z.B. 'Hallo'
i, i2: Integer; // i und i2 geben den Index der Zeichen an, // welche getauscht werden sollen var temp: Char; c := s[i]; s[i] := s[i2]; s[i2] := c; |
Re: Buchstaben an andere Stelle setzten
Es muss ja nicht unbedingt tauschen sein :mrgreen:
|
Re: Buchstaben an andere Stelle setzten
Ich würde das ganze über eine allgemeine Funktion lösen:
Delphi-Quellcode:
Grüße,
function Tausche(Wort : String; bs1, bs2 : integer) : String;
VAR TmpChar : Char; begin TmpChar := Wort[bs1]; Wort[bs1] := Wort[bs2]; Wort[bs2] := TmpChar; result := Wort; end; [...] Edit2.Text := Tausche(Edit1.Text, 2, 5); // Vertauscht z.B. Buchstabe 2 und 5 von Edit1.Text und weist es dem Text von Edit2 zu. SCRaT |
Re: Buchstaben an andere Stelle setzten
also ich wollte nicht tauschen und mit insert und delete habe ich noch nicht gearbeitet. könnte jemand ein kleines code Beispiel schreiben (Bin ein blutiger Anfänger).
|
Re: Buchstaben an andere Stelle setzten
F1 ist dein Freund
|
Re: Buchstaben an andere Stelle setzten
Ausnahmsweise:
Delphi-Quellcode:
procedure MoveChar(var s: string; Index1, Index2: Cardinal);
var c: Char; begin if (Index1 > Length(s)) or (Index2 > Length(s)) then Exit; c := s[Index1]; Delete(s,Index1,1); Insert(c,s,Index2); end; |
Re: Buchstaben an andere Stelle setzten
ach stümmt :oops:
OK, dann wenigstens DeddyH's Variante ohne Temp-Variable :angel:
Delphi-Quellcode:
procedure MoveChar(var S: string; Index1, Index2: Cardinal);
begin if (Index1 > Length(S)) or (Index2 > Length(S)) then Raise Exception.Create('Fehler'); If Index2 > Index1 Then Inc(Index2); Insert(S[Index1], S, Index2); Delete(S,Index1, 1); end; |
Re: Buchstaben an andere Stelle setzten
Der Vollständigkeit halber sollte wohl auch auf Index=0 geprüft werden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07: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 by Thomas Breitkreuz