![]() |
Reg Exp in Pos()
Moin Moin,
ich habe diesen Code
Delphi-Quellcode:
der soweit ja auch funktioniert, das Problem ist das ich da wo gerade die 27 steht auch eine andere zweistellige Zahl stehen könnte und ich deshalb mit RegExp irgendwie arbeiten muß
position := Pos(ListBox2.items[ccc] + ' 27' + FormatDateTime('hh', time),Memo1.Lines.Text);
So wie mir RegExp von PHP und htaccess bekannt sind geht es aber nicht in der OH steht was von Regulären Ausdrücken (müßte also ja auch OHNE das install von diesem RegExp Unit gehen), aber ganz Klasse ohne Beispiele müßte eigendlich ja so ausschauen ([0-9]{2}) Wie gesagt es geht darum das an der stelle wo jetzt die 27 steht jede andere Zahl stehen kann und darauf möchte ich prüfen die texte im memo schauen z.b. so aus ABCD DDHHNN weiterer text ABCD ist dann pro zeile in ListBox2.items[ccc] drin, das ganze wird durch eine schleife ausgelesen, aber das nur am rand DD = Tag (auf den möchte ich prüfen) HH = Stunde (die wird aktuell genommen) NN = Minute danach wird aber nicht mehr gesucht danach dann der eigendliche text hoffe ich habe mich klar ausgedrückt PS: in der OH zu Pos() steht bei mir in D5 leider nicht wirklich viel, weil das hier ja immer wieder angemerkt wurde ;) da steht bei mir nur das drin Zitat:
|
Re: Reg Exp in Pos()
Moin,
AFAIR musst du dafuer eine RegExp-Unit installieren. Ich verwende die TPerlRegExp-Komponenten, funktionieren einwandfrei :) Greetz alcaeus |
Re: Reg Exp in Pos()
ok wenn du dafür eine DAU-Anleitung hast wo ich die Unit bekomme, wie ich die Unit Installiere und dann in Pos nutze, kein Problem :D
Nur warum stehen dann RegExp in der OH drinn wenn D5 das gar nicht kann ? |
Re: Reg Exp in Pos()
Moin Nisbo,
Zitat:
Um eine Schleife, die die Variablen Werte durchprobiert wirst Du mit Pos nicht drumherum kommen. Wenn Du aber schon mit regulären Ausrücken arbeitest: Wozu dann noch Pos? Entweder die Zeile entspricht dem Ausdruck oder eben nicht. |
Re: Reg Exp in Pos()
das ganze ist erstmal nur zum testen, das programm liest ca 1400 textdateien ein welche eigendlich immer aktuell mit dem datum codiert sind, das ganze sieht dann später so aus:
Delphi-Quellcode:
das ist ja ncith das problem, das problem ist das ich zum testen jetzt nur alte dateien habe und das ganze nicht hardgecodet haben wollte bis die final da ist, deswegen der test bei der 27 ob das zahlen sind
position := Pos(ListBox2.items[ccc] + FormatDateTime('dd', date) + FormatDateTime('hh', time),Memo1.Lines.Text);
Pos brauche ich auf jeden fall denn ich kopiere ja ab dieser stelle den code raus den ich brauche, das geht auch alles naja notfalls muß ich es halt doch hardgecodet lassen und dann immer umschreiben :D Ups jetzt hätte ich hier fast F9 gedrückt um den Text abzuschicken :D |
Re: Reg Exp in Pos()
Ansonsten
Delphi-Quellcode:
Damit findet man z.B. eine zweistellige Zahl mit dem Lehrzeichen davor ... kannst du ja entsprechend anpassen ._.
S := deinString;
i := 0; For i2 := 1 to Length(S) - 3 do If (S[i2] = ' ') and (S[i2 + 1] in ['0'..'9']) and (S[i2 + 2] in ['0'..'9']) Then Begin i := i2; Break; End; diePosition := i; Oder etwa so:
Delphi-Quellcode:
I hoffe ma es geht so ._. (für das * kannst/mußt du halt nur ein Zeichen nehmen, welches nicht in S2 vorkommt)
S := Memo1.Lines.Text;
S2 := ListBox2.items[ccc] + ' **' + FormatDateTime('hh', time); Position := 0; For i := 1 to Length(S) - Length(S2) do Begin For i2 := 1 to Length(S2) do If (S[i] <> S2[i]) and (S2[i] <> '*') Then GoTo Ende; Position := i; Break; Ende: End; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz