Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Schleife mit RegExpr
Bob Murphy - Mi 18.11.09 19:59
Titel: Schleife mit RegExpr
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 - 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. ;)
Bob Murphy - Mi 18.11.09 20:06
Dude566 hat folgendes geschrieben : |
| 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 - 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.
Bob Murphy - Mi 18.11.09 20:11
Dude566 hat folgendes geschrieben : |
| 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 - 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?
Bob Murphy - Mi 18.11.09 20:42
Xentar hat folgendes geschrieben : |
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 - Mi 18.11.09 20:52
Pseudocode
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?
Bob Murphy - Mi 18.11.09 21:01
Xentar hat folgendes geschrieben : |
| Ä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
Narses: Zitat gekürzt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!