Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   String (https://www.delphipraxis.net/63002-string.html)

blauglaser 12. Feb 2006 16:31


String
 
Hallo zusammen,
habe doch noch eine Frage zum String, wie kann man aus diesem String "c:\test 80" nur die 80 auslesen, und an eine Variable übergeben.
Vor 80 ist ein Leerzeichen und der String ist in einer .txt, oder ist es möglich in einem String, nach einem Int-Wert zu suchen und an eine Variable zu übergeben.

ichbins 12. Feb 2006 16:35

Re: String
 
such einfach nach dem Leerzeichen und kopier dann den Text ab dem Leerzeichen. Oder alternativ: Füge alle gefundenen Zifferzeichen zusammen.

erste Methode:
Delphi-Quellcode:
var
  s:string;
begin
  for i:=length(s) downto i do
    if s[i]=' ' then
      break;
   zahl:=copy(s,i,length(s)-i);
end;
zweite Methode:
Delphi-Quellcode:
var
  s:string;
const
  ziffern='0123456789';
begin
  zahl:='';
  for i:=1 to length(s) do
    if pos(s[i],ziffern)>0 then
      zahl:=zahl+s[i];
end;

Christian Seehase 12. Feb 2006 16:43

Re: String
 
Moin Michael,

statt
Delphi-Quellcode:
zahl:=copy(s,i,length(s)-i);
kannst Du auch einfach
Delphi-Quellcode:
zahl:=copy(s,i,MaxInt);
schreiben, wenn der Rest des Strings genommen werden soll.
Copy hört sowieso auf, wenn der String zu Ende ist.
Das spart dann die Berechnung.

blauglaser 12. Feb 2006 20:23

Re: String
 
Hallo,
habe folgendes versucht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

 var
  s,zahl:string;
  i:Integer;

begin
s:='TEST 38';
  for i:=length(s) downto i do
    if s[i]=' ' then
      break;
   zahl:=copy(s,i,MaxInt);
   Label1.Caption:=zahl;
end;
end.
aber in Label wird nichts ausgegeben und eigentlich sollte doch
38 übergeben werden kann mir jemand sagen wo der Fehler liegt.

3_of_8 12. Feb 2006 20:36

Re: String
 
Ich würds eher mit downto 1 probieren.

Und da fehlt ein begin...end; ansonsten wird nur gebreakt.:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

var
  s,zahl:string;
  i:Integer;

begin
s:='TEST 38';
  for i:=length(s) downto i do
  begin
    if s[i]=' ' then
      break;
   zahl:=copy(s,i,MaxInt);
   Label1.Caption:=zahl;
  end;
end;
end.

Question_mark 12. Feb 2006 20:44

Re: String
 
Hallo blauglaser,
Zitat:

Zitat von blauglaser
kann mir jemand sagen wo der Fehler liegt

Ja, Dein Debugger sagt es Dir. Einfach mal einen Breakpoint auf Zeile 11
setzen und mit F7 durchsteppen. Du wirst Dich wundern, wie schnell die
Funktion beendet wird. :roteyes:

Gruß
Question_mark

dahead 12. Feb 2006 20:47

Re: String
 
Zitat:

Zitat von Question_mark
Hallo blauglaser,
Zitat:

Zitat von blauglaser
kann mir jemand sagen wo der Fehler liegt

Ja, Dein Debugger sagt es Dir.

Gruß
Question_mark

dein debugger sagt dir sowas? wie wärs wenn du was zum thema beiträgst oder es sein lässt?

3_of_8 12. Feb 2006 20:57

Re: String
 
Das tut er doch.

Question_mark 12. Feb 2006 21:09

Re: String
 
Hallo dahead,
Zitat:

Zitat von dahead
wie wärs wenn du was zum thema beiträgst oder es sein lässt?

Vielen herzlichen Dank für die freundliche Begrüssung hier im Forum.
Wie konnte ich als 12-jähriger, absoluter Noop es auch nur wagen, hier einfach zu posten :oops:
Ich hoffe, dass Du als absolut erfahrener, anerkannter Delphi-Experte mit so ungeheuerlich
wertvollen Forumsbeiträgen mir meinen kleinen, bescheidenen Beitrag verzeihst. Wird auch
bestimmt nicht wieder vorkommen.

Question_mark

himitsu 13. Feb 2006 12:05

Re: String
 
Kommt das nur mir so vor, oder wiederholt sich da was?

String Variable

Und dann die Thteadnamen ... geht das nicht etwas genauer? ... "String", oder "String Variable" sind ja nicht gerade aussagekräftig :warn:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:59 Uhr.
Seite 1 von 2  1 2      

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