Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   5tes Zeichen eines Strings ersetzen (https://www.delphipraxis.net/166838-5tes-zeichen-eines-strings-ersetzen.html)

t0mmy 2. Mär 2012 07:55

5tes Zeichen eines Strings ersetzen
 
Hallo ich wollte mal fragen ob es eine einfacherer variante gibt das 5te Zeichen eines Strings zu ersetzten als mittels einer schleife?

Bernhard Geyer 2. Mär 2012 07:55

AW: 5tes Zeichen eines Strings ersetzen
 
Schleife?

Delphi-Quellcode:
MeinString[5] := 'a';

t0mmy 2. Mär 2012 07:58

AW: 5tes Zeichen eines Strings ersetzen
 
arrr logo, ja ich hab grad so bissal durchgeschaut und da is ma halt auch der Befehl Insert aufgefallen aber den werd ich wohl für strings und nicht für ein einzelnes Zeichen hernehmen.

Popov 2. Mär 2012 12:46

AW: 5tes Zeichen eines Strings ersetzen
 
Nur Vorsicht
Delphi-Quellcode:
MeinString[5] := 'a';
funktioniert wunderbar wenn an der fünften Stelle ein Zeichen existiert. Wenn nicht, dann gibt es eine böse Fehlermeldung. Deshalb sollte man es immer über ein Abfrage machen:

Delphi-Quellcode:
if Length(MeinString) >= 5 then
  MeinString[5] := 'a';
Im Zweifelsfall ist es besser es gleich anders zu machen:

Delphi-Quellcode:
Delete(MeinString, 5, 1);
Insert('a', MeinString, 5);
Das schlimmste was dir hier passieren kann, dass der Buchstabe 'a' an einen leeren MeinString angehängt wird. Und wenn du es öfters brauchst, dann eine Funktion draus machen,

Bernhard Geyer 2. Mär 2012 12:49

AW: 5tes Zeichen eines Strings ersetzen
 
Zitat:

Zitat von Popov (Beitrag 1154088)
Nur Vorsicht
Delphi-Quellcode:
MeinString[5] := 'a';
funktioniert wunderbar wenn an der fünften Stelle ein Zeichen existiert. Wenn nicht, dann gibt es eine böse Fehlermeldung. Deshalb sollte man es immer über ein Abfrage machen:

Delphi-Quellcode:
if Length(MeinString) >= 5 then
  MeinString[5] := 'a';

Solche Checks sollten klar sein.


Zitat:

Zitat von Popov (Beitrag 1154088)
Im Zweifelsfall ist es besser es gleich anders zu machen:

Delphi-Quellcode:
Delete(MeinString, 5, 1);
Insert('a', MeinString, 5);
Das schlimmste was dir hier passieren kann, dass der Buchstabe 'a' an einen leeren MeinString angehängt wird. Und wenn du es öfters brauchst, dann eine Funktion draus machen,

Das schlimmst ist das hiermit die Performance sowas in den Keller geht wenn diese Funktion sehr häufigt verwendet wird und evtl. die Strings auch noch lange sind. Wenn dann deinen obigen 2zeiler in eine Funktion verpacken.

Popov 2. Mär 2012 12:58

AW: 5tes Zeichen eines Strings ersetzen
 
Zitat:

Solche Checks sollten klar sein.
Ist schnell gesagt. Bei mir hat es 8 Jahre gedauert bis die erste Fehlermeldung kam und ich mit dem Problem konfrontiert wurde. Man testet ja nicht wenn man weiß, dass an der Stelle ein Buchstabe ist. Aber manchmal wird man überrascht und der String ist leer wo er nicht ler sein sollte.

himitsu 2. Mär 2012 13:23

AW: 5tes Zeichen eines Strings ersetzen
 
Tipp: In den Projektioptionen oder via Compilerschalter kann man eine Index-, sowie eine Überlaufprüfung aktivieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:06 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