AGB  ·  Datenschutz  ·  Impressum  







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

String auseinander nehmen

Ein Thema von kingflo · begonnen am 7. Mär 2005 · letzter Beitrag vom 7. Mär 2005
Antwort Antwort
Seite 1 von 2  1 2      
kingflo

Registriert seit: 21. Jun 2004
Ort: Hamburg
502 Beiträge
 
Delphi 7 Professional
 
#1

String auseinander nehmen

  Alt 7. Mär 2005, 16:54
Hallo!
Vielleicht könnt ihr mir helfen.

Also ich habe ein String mit dem Namen Text.

Dieser Text ist bei der Rückgabe immer unterschiedlich lang. Aber am ende des Strings steht immer eine Zahl z.b 1 oder 12 oder eine andere.

So und diese Zahl möchte ich jetzt in der integer variable wert haben.

Weiß aber nicht wie ich das machen soll, da ich nie weiß wie groß der String ist und wie viele Stellen die Zahl hat.

Kann mir da jemand helfen?
Florian Gilde
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#2

Re: String auseinander nehmen

  Alt 7. Mär 2005, 17:06
die länge des strings bekommst du mit Length(s) und das n-te Zeichen mit Copy(s, n, 1)

siehe auch online-Hilfe

mit StrToInt(Copy(s, n, 1)) machst du aus der ziffer an der n-ten stelle im string s eine zahl
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: String auseinander nehmen

  Alt 7. Mär 2005, 17:27
Oder auch so:
Delphi-Quellcode:
var str : string = '12345';
    i:integer;
begin
 i:= StrToInt(str[2]); // i := 2;
end;
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: String auseinander nehmen

  Alt 7. Mär 2005, 17:30
Zitat von sniper_w:
Oder auch so:
Delphi-Quellcode:
var str : string = '12345';
    i:integer;
begin
 i:= StrToInt(str[2]); // i := 2;
end;
Wäre das in dem Fall nich i := 3?
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: String auseinander nehmen

  Alt 7. Mär 2005, 17:38
Nein.
Strings beginnen mit index 1. Sind halt nicht 0 "based".
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#6

Re: String auseinander nehmen

  Alt 7. Mär 2005, 17:42
Für beliebig lange Zahlen am Stringende:
Delphi-Quellcode:
i:= length(str)-1;

// String wird von hinten durchgegangen und geschaut, wann die erste nicht-Zahl auftaucht.
while str[i] in ['0'..'9'] do
dec(i);

result:= strtoint(copy(str,i,length(str)-i));
Das ist eher als Idee als als fertiger Code gedacht, aber (+/-) 1 müsste er funktionieren.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
MarcusB

Registriert seit: 7. Mär 2004
121 Beiträge
 
Delphi 7 Professional
 
#7

Re: String auseinander nehmen

  Alt 7. Mär 2005, 17:46
Wenn Du nicht weisst, wielang der String ist und wieviele Stellen die Zahl hat, dann könnte ein regulärer Ausruck eine gute Lösung sein.

Für Deinen Fall etwa :

Code:
/^.*(\d*)$/
Allerdings setzt das voraus, das Du eine entsprechende Library installiert hast, wie z.B. TRegExpr.

  Mit Zitat antworten Zitat
kingflo

Registriert seit: 21. Jun 2004
Ort: Hamburg
502 Beiträge
 
Delphi 7 Professional
 
#8

Re: String auseinander nehmen

  Alt 7. Mär 2005, 18:36
Also irgendwie hab ichs noch nicht richtig hinbekommen.


Habs bis jetzt so:
Und es geht halt nur bei einem einstelligem wert am Ende logisch ist halt fest gesetzt.



Code:
str:=PHPOutPut.Items.Strings[PHPOutPut.Itemindex];

i:= StrToInt(str[length(str)]);
kann man nicht rausbekommen, was bei einem String nach dem Wort Line: für Zahlen kommen?
Denn das Letzte Wort vor den Zahlen ist Line: (bzw wenn es nicht line ist soll die aktion gar nicht durchgeführt werden)
Florian Gilde
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#9

Re: String auseinander nehmen

  Alt 7. Mär 2005, 18:39
Wenn du die Buchstaben vor der Zahl kennst, kannst du auch mit pos arbeiten.
per int:=pos(str,'line'); kommst du an die Position von line im String. Danach kannst du per copy die Buchstaben rausholen.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: String auseinander nehmen

  Alt 7. Mär 2005, 18:42
Zitat von kingflo:
kann man nicht rausbekommen, was bei einem String nach dem Wort Line: für Zahlen kommen?
Denn das Letzte Wort vor den Zahlen ist Line: (bzw wenn es nicht line ist soll die aktion gar nicht durchgeführt werden)
Nimm doch Delphi-Referenz durchsuchenpos:
Delphi-Quellcode:
var myStr: string;
...
p:= pos('line:', myStr);
if p >0 then begin
  ShowMessage('"line:" ist in myStr enthalten');
  //mach irgendwas
end
else //'line:' ist nicht im myStr vorhanden
MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  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 11:49 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