AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PChar: Zeichen rechts abschneiden?

Ein Thema von Pseudemys Nelsoni · begonnen am 18. Aug 2005 · letzter Beitrag vom 19. Aug 2005
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

PChar: Zeichen rechts abschneiden?

  Alt 18. Aug 2005, 19:10
Moin,

wie kann ich einen Teil eines strings (PChars) von rechts abschneiden?`
Angenommen ich habe einen string der so aussieht: 'fhgshsdfhfh....' und ich möchte rechts alle Punkte abschneiden (können beliebig viele sein), wie würde ich das machen? Ich habe mir schon überlegt, eine Schleife rückwärs laufen zu lassen, wo ich den Pointer um 1 dekrementiere... Nur wie lange lass ich die Schleife laufen wenn der String nur Punkte enthält? Auf #0 kann ich ja nicht prüfen.


Vielleicht weiss es ja jemand.
Mario
  Mit Zitat antworten Zitat
marabu

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

Re: PChar: Zeichen rechts abschneiden?

  Alt 18. Aug 2005, 19:17
Hallo Mario,

den Zeiger auf den Anfang deiner Zeichenkette brauchst du schon als Referenzpunkt. Wenn der dekrementierte Zeiger kleiner ist als der Referenzzeiger, dann ist es Zeit aufzuhören...

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: PChar: Zeichen rechts abschneiden?

  Alt 18. Aug 2005, 19:17
Zitat von Pseudemys Nelsoni:
Auf #0 kann ich ja nicht prüfen.
Nicht im String, aber lass doch beim Dekrementieren des Pointers noch nen Zähler mitlaufen. Wenn der 0 wird, biste am Ende (bzw. Anfang).
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#4

Re: PChar: Zeichen rechts abschneiden?

  Alt 18. Aug 2005, 19:23
Danke Leute

@marabu, darf ich denn einfach unter den Index gehen (solange ich da nichts rumschreibe) ?
Mario
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#5

Re: PChar: Zeichen rechts abschneiden?

  Alt 18. Aug 2005, 19:27
So etwas wie "Ausschneiden" gibt es nicht, wenn du deinen String nur kürzen möchtest,
könntest du SetLength() benutzen ansonsten auch Copy() oder du setzt ein 0 Byte.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i, l: Integer;
var s: String;
begin
s := Edit1.Text;

if s <> 'then
begin for i := Length(s) downto 1 do
begin if s[i] <> '.then
begin
  l := i;
  Break;
end;
end;

SetLength(s, l);
Edit1.Text := s;
end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6

Re: PChar: Zeichen rechts abschneiden?

  Alt 18. Aug 2005, 19:30
hallo bigg,

danke für deinen Code

Aber das würde nicht ganz funktionieren, weil ich wie gesagt PChars benutze und weil bei deinem Code bei dem ersten vorkommen von "." gestoppt werden würde, was bei 'text.text2...' ja falsch wäre, da ich ja wie gesagt nur die letzten Punkte löschen will.
Mario
  Mit Zitat antworten Zitat
marabu

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

Re: PChar: Zeichen rechts abschneiden?

  Alt 18. Aug 2005, 19:35
Zitat von Pseudemys Nelsoni:
darf ich denn einfach unter den Index gehen?
Klar doch - mit solchen "wild pointers" erhältst du Zugriff auf andere Variablen oder auf interne Speicherbereiche, die vom Compiler für lokales memory management genutzt werden. Irgendwann schlagen aber die Schutzmechanismen von OS und Hardware zurück und dann ist Schluss mit lustig - AV.

marabu
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#8

Re: PChar: Zeichen rechts abschneiden?

  Alt 18. Aug 2005, 19:38
Hast du nicht gesagt, du möchtest von rechts beginned die Punkte abschneiden
Dann sollte es auch so funktionieren.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#9

Re: PChar: Zeichen rechts abschneiden?

  Alt 18. Aug 2005, 19:38
Klingt interessant, könntest du mir das:

Zitat:
Irgendwann schlagen aber die Schutzmechanismen der Hardware zurück und dann ist Schluss mit lustig - AV.
Nochmal näher erklären? Wann würden AVs auftreten?


@bigg: Doch habe ich:

Zitat:
wie kann ich einen Teil eines strings (PChars) von rechts abschneiden?`
Mario
  Mit Zitat antworten Zitat
XeRo

Registriert seit: 23. Okt 2003
Ort: Warth
461 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: PChar: Zeichen rechts abschneiden?

  Alt 18. Aug 2005, 19:43
hm wie wärs mit einem stringreplace(s,'.','',[rcReplaceAll])?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 02:27 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