Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Buchstaben an andere Stelle setzten (https://www.delphipraxis.net/129477-buchstaben-andere-stelle-setzten.html)

Mariaki 19. Feb 2009 19:11


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

DeddyH 19. Feb 2009 19:12

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.

himitsu 19. Feb 2009 19:17

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;

DeddyH 19. Feb 2009 19:22

Re: Buchstaben an andere Stelle setzten
 
Es muss ja nicht unbedingt tauschen sein :mrgreen:

scrat1979 19. Feb 2009 19:25

Re: Buchstaben an andere Stelle setzten
 
Ich würde das ganze über eine allgemeine Funktion lösen:

Delphi-Quellcode:
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.
Grüße,
SCRaT

Mariaki 19. Feb 2009 19:26

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).

mkinzler 19. Feb 2009 19:33

Re: Buchstaben an andere Stelle setzten
 
F1 ist dein Freund

DeddyH 19. Feb 2009 19:35

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;

himitsu 19. Feb 2009 20:12

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;

taaktaak 19. Feb 2009 20:29

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 10:57 Uhr.
Seite 1 von 3  1 23      

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