AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi zeichen beim errechnen nicht beachten
Thema durchsuchen
Ansicht
Themen-Optionen

zeichen beim errechnen nicht beachten

Ein Thema von Striker00 · begonnen am 29. Nov 2007 · letzter Beitrag vom 30. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
Striker00

Registriert seit: 29. Nov 2007
7 Beiträge
 
Delphi 7 Personal
 
#1

zeichen beim errechnen nicht beachten

  Alt 29. Nov 2007, 12:17
Hallo zusammen,
und zwar möchte ich für mein programm folgendes:
Das Proggi soll aus der edit box (edit1.text) einmal alle zeichen übernehmen (diese dann in ne stringlist speichern , dass ist aber kein problem..) und dann soll er gleichzeitig noch den gleichen text nehmen nur das zeichen "^" weglassen und den nachfolgenden buchstaben auf "^" auch weglassen...
Also kleines bsp:
edit.text -> ^5Hallo
dann soll er einmal "^5Hallo" übernehmen und einmal nur "Hallo" übernehmen.


Ist das möglich ? Wenn ja , Wie ?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.607 Beiträge
 
Delphi 12 Athens
 
#2

Re: zeichen beim errechnen nicht beachten

  Alt 29. Nov 2007, 12:21
Hallo, willkommen in der DP
Mit den Funktionen Copy und Pos sollte sich das machen lassen.
Delphi-Quellcode:
const aStr = '^5Hallo';
begin
  ShowMessage(Copy(aStr,Pos('^',aStr) + 2,Length(aStr)));
end;
[edit] Das setzt voraus, dass sich das Zeichen an erster Stelle befindet, da sonst alle Zeichen davor unterschlagen werden. Das ist mit einem vorherigen Sichern (auch wieder mit Copy und Pos) zu umgehen. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Striker00

Registriert seit: 29. Nov 2007
7 Beiträge
 
Delphi 7 Personal
 
#3

Re: zeichen beim errechnen nicht beachten

  Alt 29. Nov 2007, 12:39
naja das zeichen "^" sollte überall in der edit box rausgenommen werden (+ das nachfolgende zeichen..) nur am anfang von der box bringt es mir net allzuviel
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.853 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: zeichen beim errechnen nicht beachten

  Alt 29. Nov 2007, 12:43
StringReplace()
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.607 Beiträge
 
Delphi 12 Athens
 
#5

Re: zeichen beim errechnen nicht beachten

  Alt 29. Nov 2007, 12:45
StringReplace würde gehen, wenn es sich nur um das Zeichen handelt (ohne den Nachfolger).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.607 Beiträge
 
Delphi 12 Athens
 
#6

Re: zeichen beim errechnen nicht beachten

  Alt 29. Nov 2007, 12:48
So sollte es gehen:
Delphi-Quellcode:
const aStr = 'davor ^5Hallo';
var s: string;
begin
  s := Copy(aStr,1,Pos('^',aStr) - 1);
  s := s + Copy(aStr,Pos('^',aStr) + 2,Length(aStr));
  ShowMessage(s);
end;
[edit] Oder gleich als Funktion:
Delphi-Quellcode:
function RestString(const aStr: string;//Eingabestring
                    needle: char; //das gesuchte Zeichen
                    CountTrailing: integer //Anzahl der zu löschenden Nachfolgezeichen
                    ): string;
begin
  Result := Copy(aStr,1,Pos(needle,aStr) - 1);
  Result := Result + Copy(aStr,Pos(needle,aStr) + Succ(CountTrailing),Length(aStr));
end;

procedure TForm1.Button1Click(Sender: TObject);
const aStr = 'Aber ^5Hallo';
var s: string;
begin
  s := RestString(aStr,'^',1);
  ShowMessage(s);
end;
[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Striker00

Registriert seit: 29. Nov 2007
7 Beiträge
 
Delphi 7 Personal
 
#7

Re: zeichen beim errechnen nicht beachten

  Alt 29. Nov 2007, 13:51
mhh erstma danke deddyh das würde funktionieren , aber er kommt nur damit klar wenn aStr = 'ein text'; ist wenn ich dort ne edit1.text angeb dann kommen fehlermeldungen:
[Fehler] Unit1.pas(30): Konstantenausdruck erwartet
[Fehler] Unit1.pas(33): Inkompatible Typen (dieser kommt öfters...)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.607 Beiträge
 
Delphi 12 Athens
 
#8

Re: zeichen beim errechnen nicht beachten

  Alt 29. Nov 2007, 14:06
Wie sieht der Aufruf denn aus?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Striker00

Registriert seit: 29. Nov 2007
7 Beiträge
 
Delphi 7 Personal
 
#9

Re: zeichen beim errechnen nicht beachten

  Alt 29. Nov 2007, 14:08
was meinste mit aufruf ? Das was er mit der funktion machen soll ?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.607 Beiträge
 
Delphi 12 Athens
 
#10

Re: zeichen beim errechnen nicht beachten

  Alt 29. Nov 2007, 14:12
Also, ich habe das gerade mal getestet:
Delphi-Quellcode:
function RestString(const aStr: string;//Eingabestring
                    needle: char; //das gesuchte Zeichen
                    CountTrailing: integer //Anzahl der zu löschenden Nachfolgezeichen
                    ): string;
begin
  Result := Copy(aStr,1,Pos(needle,aStr) - 1);
  Result := Result + Copy(aStr,Pos(needle,aStr) + Succ(CountTrailing),Length(aStr));
end;

procedure TForm1.Button1Click(Sender: TObject);
var s: string;
begin
  s := RestString(Edit1.Text,'^',1); //im Edit steht 'Aber ^5Hallo'
  ShowMessage(s);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13: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