AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Integer aus String mit anderen Zeichen herraussuchen
Thema durchsuchen
Ansicht
Themen-Optionen

Integer aus String mit anderen Zeichen herraussuchen

Ein Thema von -NIP- · begonnen am 27. Jun 2005 · letzter Beitrag vom 1. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von -NIP-
-NIP-

Registriert seit: 6. Jun 2004
Ort: Aachen
254 Beiträge
 
Delphi 7 Personal
 
#1

Integer aus String mit anderen Zeichen herraussuchen

  Alt 27. Jun 2005, 20:37
Hi!

Das ist warscheinlich eine Noobfrage, aber wie kann ich aus einem Edit eine Integer-Zahl auslesen, wenn dort noch andere Zeichen drin sind wie z.B. "%". Am besten fällt dan gleich ein etwaig vorhandenes Komma weg.
Also, euer Wissen ist gefragt.
Christian
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Integer aus String mit anderen Zeichen herraussuchen

  Alt 27. Jun 2005, 20:43
Delphi-Quellcode:
Var PosN:Integer;
    s:String;
Begin
  PosN:=Length(s);
  for i:=0 to 9 do
  Begin
    If Pos(InttoStr(i),s)<PosN Then
      PosN:=Pos(InttoStr(i),s);
  End;
End;
Ungetestet! Geht nur solange keine anderen Zahlen auftauchen, und das ende der Zahl wird auch nicht bestimmt, dazu musst du das aber nur rumdrehen und vom ende an suchen...
Benjamin
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

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

Re: Integer aus String mit anderen Zeichen herraussuchen

  Alt 27. Jun 2005, 20:44
Geh doch den String durch und schmeiss alles ausser den Zahlen raus.

Delphi-Quellcode:
k: char;
str: string;
begin
str:='666';
k:= str[1];
if (k in ['0'..'9']) then showmessage('drin');
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Integer aus String mit anderen Zeichen herraussuchen

  Alt 27. Jun 2005, 20:45
du könntest alle zeischen des Edits durchgehen und wenn eine zahl gefunden wird merkst du dir diesen teil. Also in etwa so:
Delphi-Quellcode:
var LNumber: String;
    LCount: Integer;
    LByte: Byte;
begin
  LNumber := '';
  for LCount := 1 to Length(Edit1.Text) do
  begin
    LByte := Byte(Edit1.Text[LCount]);
    if (LByte in [48..57]) then
      LNumber := LNumber + Char(LByte);
  end;
  if LNumber = 'then
    ShowMessage('Keine Zahl da')
  else
    ShowMessage(LNumber); //um das ganze als Integer zu erhalten: StrToInt(LNumber)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#5

Re: Integer aus String mit anderen Zeichen herraussuchen

  Alt 27. Jun 2005, 23:20
Delphi-Quellcode:
type
  TCharSet = set of Char;

function StripNonConforming(const S: string;
  const ValidChars: TCharSet): string;
var
  DestI: Integer;
  SourceI: Integer;
begin
  SetLength(Result, Length(S));
  DestI := 0;
  for SourceI := 1 to Length(S) do
    if S[SourceI] in ValidChars then
    begin
      Inc(DestI);
      Result[DestI] := S[SourceI]
    end;
  SetLength(Result, DestI)
end;

function StripNonNumeric(const S: string): string;
begin
  Result := StripNonConforming(S, ['0'..'9'])
end;
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von -NIP-
-NIP-

Registriert seit: 6. Jun 2004
Ort: Aachen
254 Beiträge
 
Delphi 7 Personal
 
#6

Re: Integer aus String mit anderen Zeichen herraussuchen

  Alt 30. Jun 2005, 19:19
Wenn man einfach nur die Zahlen rausnimmt, dann würde er auch Zahlen zusammentun, die garnicht hinternanderstehen, z.B.: "12%3".
Ich muss da sichergehen, weil es sich ja auch um den DAU handeln könnte .
Christian
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Integer aus String mit anderen Zeichen herraussuchen

  Alt 30. Jun 2005, 21:35
was soll denn passieren wenn jemand "12%3" eingibt?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
CLRS530

Registriert seit: 27. Jun 2005
Ort: Hamburg
39 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Integer aus String mit anderen Zeichen herraussuchen

  Alt 1. Jul 2005, 16:01
Delphi-Quellcode:
Function ZahlAusString(ZahlString : String) : String;
var
  TempString : String;
  i, dummy : Integer;
begin
  i := 1;
  TempString := '';
  While i <= Length(ZahlString) do
  begin
    if TryStrToInt(Copy(ZahlString, i, 1), dummy) then //Testet ob der Wert eine Integer- Zahl
      TempString := TempString + Copy(ZahlString, i, 1);
    inc(i)
  end;
  ZahlAusString := TempString
end;
So ich hoffe, ich habe verstanden was du möchtest und das das eine gute Antwort für dich ist.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Integer aus String mit anderen Zeichen herraussuchen

  Alt 1. Jul 2005, 16:07
@CLRS530: Deine funktion macht das gleiche wie meine Auch schon, nur das ich nicht per TryStrToInt auf zahl prüfen sondern den Ascii-Code prüfe. Und anstelle von copy greife ich direkt mit "[]" auf die Zeischen zu was auch bedeutend schneller ist als erst copy zu verwenden. Letztendlich schien dies aber nicht das zu sein was der Threadsteller wollte...
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
CLRS530

Registriert seit: 27. Jun 2005
Ort: Hamburg
39 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Integer aus String mit anderen Zeichen herraussuchen

  Alt 1. Jul 2005, 16:32
Ji, das ist richtig, deine macht das gleiche, aber ich dneke mal, das meine vielleicht ein wenig lesbarer ist.
Das, das direkte zugreifen, so furchtbar viel schneller ist, wage ich mal zu verneinen und überhaupt ist das in diesem Fall total nebensächlich, da es hier nicht auf speed ankommt.
Da würde ich in jedem Fall Copy benutzen.
  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 23:55 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