AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein 5tes Zeichen eines Strings ersetzen
Thema durchsuchen
Ansicht
Themen-Optionen

5tes Zeichen eines Strings ersetzen

Ein Thema von t0mmy · begonnen am 2. Mär 2012 · letzter Beitrag vom 2. Mär 2012
Antwort Antwort
t0mmy

Registriert seit: 28. Jul 2010
431 Beiträge
 
Delphi 2010 Architect
 
#1

5tes Zeichen eines Strings ersetzen

  Alt 2. Mär 2012, 08:55
Hallo ich wollte mal fragen ob es eine einfacherer variante gibt das 5te Zeichen eines Strings zu ersetzten als mittels einer schleife?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: 5tes Zeichen eines Strings ersetzen

  Alt 2. Mär 2012, 08:55
Schleife?

MeinString[5] := 'a';
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
t0mmy

Registriert seit: 28. Jul 2010
431 Beiträge
 
Delphi 2010 Architect
 
#3

AW: 5tes Zeichen eines Strings ersetzen

  Alt 2. Mär 2012, 08:58
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.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: 5tes Zeichen eines Strings ersetzen

  Alt 2. Mär 2012, 13:46
Nur Vorsicht 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,
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: 5tes Zeichen eines Strings ersetzen

  Alt 2. Mär 2012, 13:49
Nur Vorsicht 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.


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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#6

AW: 5tes Zeichen eines Strings ersetzen

  Alt 2. Mär 2012, 13:58
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#7

AW: 5tes Zeichen eines Strings ersetzen

  Alt 2. Mär 2012, 14:23
Tipp: In den Projektioptionen oder via Compilerschalter kann man eine Index-, sowie eine Überlaufprüfung aktivieren.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  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 15:11 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