AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Zeichen in String an Position x ersetzten
Thema durchsuchen
Ansicht
Themen-Optionen

Zeichen in String an Position x ersetzten

Ein Thema von fcg · begonnen am 26. Jan 2004 · letzter Beitrag vom 19. Sep 2005
Antwort Antwort
Seite 2 von 2     12   
TPeterT

Registriert seit: 17. Dez 2003
84 Beiträge
 
Delphi 7 Professional
 
#11

Re: Zeichen in String an Position x ersetzten

  Alt 19. Sep 2005, 08:51
Hallo!
Schon gefunden...
#0 um das Zeichen zu löschen..
trotzdem danke und liebe Grüsse
Peter
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: Zeichen in String an Position x ersetzten

  Alt 19. Sep 2005, 08:57
Hi Peter,

ich hätte es mit Delete(DeinString, DiePosition, 1) versucht. Kannst du mal erklären, wie du auf deine Lösung gekommen bist?

marabu
  Mit Zitat antworten Zitat
TPeterT

Registriert seit: 17. Dez 2003
84 Beiträge
 
Delphi 7 Professional
 
#13

Re: Zeichen in String an Position x ersetzten

  Alt 19. Sep 2005, 09:02
Hallo!
Ich habe es folgend gemacht:
Löscht alle Zeichen, welche markiert sind ...
Delphi-Quellcode:
     If (Sender as TcxDBTextEdit).SelLength > 0 then
      begin
       A := (Sender as TcxDBTextEdit).SelStart + 1;
       B := A + (Sender as TcxDBTextEdit).SelLength - 1;
       While A < B do
        begin
         Text[A] := #0;
         A := A + 1;
        end;
      end;

Liebe Grüsse
Peter

[edit=Sharky]Und noch einmal die Delphi-Tags gesetzt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#14

Re: Zeichen in String an Position x ersetzten

  Alt 19. Sep 2005, 09:08
Hi Peter,

ich habe gerade meinen Beißring verlegt - machen wir es deshalb kurz:

#0 ist selbst ein Zeichen. Bei short strings darf es im string vorkommen, bei long strings ist es das terminierende Zeichen. In deinem Fall würde ich dir folgendes vorschlagen:

Delphi-Quellcode:
with Sender as TcxDBTextEdit do
  SelText := '';
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

Re: Zeichen in String an Position x ersetzten

  Alt 19. Sep 2005, 09:13
Zitat von marabu:
#0 ist selbst ein Zeichen. Bei short strings darf es im string vorkommen, bei long strings ist es das terminierende Zeichen.

Shortstrings haben eine feste Länge, da darf #0 vorkommen, obwohl es das Stringendezeichen ist.
Bei AnsiStrings darf #0 auch vorkommen, deren Länge wird vor dem String im Speicher abgelegt.
Bei null terminierenden Strings (PChar) beendet das #0 Zeichen den String.

@marabu: Wenn du mit long strings AnsiStrings meinst, ist deine Aussage falsch. Wenn du damit aber null terminierende Strings meist, stimmt die Aussage wieder.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
TPeterT

Registriert seit: 17. Dez 2003
84 Beiträge
 
Delphi 7 Professional
 
#16

Re: Zeichen in String an Position x ersetzten

  Alt 19. Sep 2005, 09:15
Hi du!
da hatte ich nochmals Glück wegen deines beißringes

Danke für den Tipp! Werde es gleich korrigieren!

Liebe Grüsse
Peter
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#17

Re: Zeichen in String an Position x ersetzten

  Alt 19. Sep 2005, 09:34
Luckie,

mit long string meine ich wirklich AnsiString. Beim längen-gezählten AnsiString wird zwar das #0 Zeichen anstandslos mitgezählt, kopiert, etc., aber sobald eine der vielen internen automatischen Wandlungen nach PChar statt findet - AUTSCH. Schau mal hier:

Delphi-Quellcode:
var
  s: AnsiString;
begin
  s := 'Bisweilen geh ich im Walde so für mich hin, nach schmackhaften Pilzen steht mir der Sinn';
  s[43] := #0;
  ShowMessage(Format('Der String "%s" hat die Länge %d', [s, Length(s)]));
end;
Deswegen sollte man solange keine null chars in einer string Variablen mitführen, bis man genau weiß was man da tut.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#18

Re: Zeichen in String an Position x ersetzten

  Alt 19. Sep 2005, 09:39
Zitat von marabu:
mit long string meine ich wirklich AnsiString. Beim längen-gezählten AnsiString wird zwar das #0 Zeichen anstandslos mitgezählt, kopiert, etc., aber sobald eine der vielen internen automatischen Wandlungen nach PChar statt findet - AUTSCH.
Jupp.

Manchaml ist es ganz schön schwer eine vermeindlich einfache Frage richtig und umfassend zu beantworten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 00:16 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