Autor Beitrag
Bob Murphy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 91

XP, Ubuntu
Delphi 7 SE, Delphi 2007
BeitragVerfasst: Mi 18.11.09 19:59 
Moin,

ich würde gerne aus einer Textdatei alle Zahlen herausfiltern.
Dazu möchte ich gerne RegExpr benutzen.
Ich dachte das ich dazu einfach eine repeat Schleife solange laufen lasse bis alle Zahlen gefiltert wurden.
Jetzt kommt meine Frage, wenn die erste Zahl zb an Position 15 gefunden wurde, muss RegExpr beim zweiten Durchlauf ab Position 16 weitersuchen. Wie bekomme ich das zustande?

LG Bob
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Mi 18.11.09 20:03 
Kannst doch auch einfach einen eigenen kleinen Parser machen der dir die Zahlen raussucht und dann nach der gefundenen Stelle mit der Suche weitermacht. ;)

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
Bob Murphy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 91

XP, Ubuntu
Delphi 7 SE, Delphi 2007
BeitragVerfasst: Mi 18.11.09 20:06 
user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
Kannst doch auch einfach einen eigenen kleinen Parser machen der dir die Zahlen raussucht und dann nach der gefundenen Stelle mit der Suche weitermacht. ;)

Kannst du dadrauf bitte etwas näher eingehen?
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Mi 18.11.09 20:08 
Naja du lädst das ganze in ein String und suchst dort mit dem Pos-Befehl nach Zahlen, müsste doch auch gehen oder? Weis allerdings nicht genau ob das möglich ist, da man ja mit Pos eigentlich nur nach einem Zeichen oder einer Kette von Zeichen suchen kann.

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
Bob Murphy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 91

XP, Ubuntu
Delphi 7 SE, Delphi 2007
BeitragVerfasst: Mi 18.11.09 20:11 
user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
Naja du lädst das ganze in ein String und suchst dort mit dem Pos-Befehl nach Zahlen, müsste doch auch gehen oder? Weis allerdings nicht genau ob das möglich ist, da man ja mit Pos eigentlich nur nach einem Zeichen oder einer Kette von Zeichen suchen kann.

Eben, ich glaub mit Pos wird das nichts, aber lasse mich gerne eines besseren belehren^^.
Ich suche auch nicht nach einer bestimmten Zahl, sondern ich möchte einfach alle aus der Textdatei haben.
Glaub da ist RegExpr schon der richtige Ansatz.
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mi 18.11.09 20:33 
Wieso RegExpr.. ?
For Schleife -> if Zeichen in ['0'..'9'then Output;

vielleicht nicht schnell, aber geht :D
RegEx sind doch eher für komplexere Zeichenketten gedacht, als nur ein bestimmtes Zeichen?

_________________
PROGRAMMER: A device for converting coffee into software.
Bob Murphy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 91

XP, Ubuntu
Delphi 7 SE, Delphi 2007
BeitragVerfasst: Mi 18.11.09 20:42 
user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
Wieso RegExpr.. ?
For Schleife -> if Zeichen in ['0'..'9'then Output;

vielleicht nicht schnell, aber geht :D
RegEx sind doch eher für komplexere Zeichenketten gedacht, als nur ein bestimmtes Zeichen?

RegExpr war das erste was mir dafür eingefallen ist.
Aber wie soll das funktionieren wenn eine Zahl zb 001, die andere 4701 und noch eine andere 500 ist?
Ich kann vorher auch nicht sagen wie kurz oder lang eine Zahl ist, es könnte auch zb 5000000000 vorkommen.
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mi 18.11.09 20:52 
Pseudocode
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
flag = 0
für alle zeichen in Eingabedatei
  wenn Zeichen eine Zahl ist
    flag = 1
    zeichen in ausgabedatei übertragen
  sonst
    wenn flag = 1
      flag = 0
      zeilenumbruch in ausgabedatei hinzufügen

damit bekommst du alle Zahlen untereinander.

Edit:
Äh, sprechen wir hier eigentlich von mehreren Zahlen in einer Datei, oder wie sieht so eine Eingabedatei aus?

_________________
PROGRAMMER: A device for converting coffee into software.
Bob Murphy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 91

XP, Ubuntu
Delphi 7 SE, Delphi 2007
BeitragVerfasst: Mi 18.11.09 21:01 
user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
Äh, sprechen wir hier eigentlich von mehreren Zahlen in einer Datei, oder wie sieht so eine Eingabedatei aus?

Ja es sind mehrere Zahlen vorhanden. ZB könnte eine Datei so aussehen: gghg64465g7ghg65gh456ghg5 usw.....
Also willst du einfach jedes einzelne Zeichen überprüfen ob Zahl oder Buchstabe, wenn Zahl, dann Zeichen in String einfügen, wenn das nächste Zeichen wieder eine Zahl ist, wird diese auch an den String angehangen. Solange bis das nächste Zeichen ein Buchstabe ist.

Moderiert von user profile iconNarses: Zitat gekürzt.