AGB  ·  Datenschutz  ·  Impressum  







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

Reg Exp in Pos()

Ein Thema von Nisbo · begonnen am 30. Mär 2006 · letzter Beitrag vom 30. Mär 2006
Antwort Antwort
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#1

Reg Exp in Pos()

  Alt 30. Mär 2006, 17:10
Moin Moin,

ich habe diesen Code

position := Pos(ListBox2.items[ccc] + ' 27' + FormatDateTime('hh', time),Memo1.Lines.Text); 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ß

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:
Die Funktion Pos gibt den Indexwert des ersten Zeichens innerhalb des angegebenen Teil-Strings zurück, der in einem String vorkommt.

Unit

System

Kategorie

String-Verarbeitung

function Pos(Substr: string; S: string): Integer;

Beschreibung

Pos sucht in dem String S nach dem Teil-String Substr. Die Parameter Substr und S sind String-Ausdrücke.

Wird der Teil-String gefunden, gibt Pos den Integer-Index des ersten Zeichens von Substr in S zurück. Die Groß/Kleinschreibung wird von Pos nicht berücksichtigt. Ist Substr nicht vorhanden, wird der Wert Null zurückgegeben.
Jens
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Reg Exp in Pos()

  Alt 30. Mär 2006, 17:16
Moin,

AFAIR musst du dafuer eine RegExp-Unit installieren. Ich verwende die TPerlRegExp-Komponenten, funktionieren einwandfrei

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#3

Re: Reg Exp in Pos()

  Alt 30. Mär 2006, 17:24
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

Nur warum stehen dann RegExp in der OH drinn wenn D5 das gar nicht kann ?
Jens
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Reg Exp in Pos()

  Alt 30. Mär 2006, 19:32
Moin Nisbo,

Zitat von Nisbo:
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
da wird Dir auch kein regulärer Ausdruck helfen, da Pos je Aufruf immer nur mit einem festen String arbeitet.
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#5

Re: Reg Exp in Pos()

  Alt 30. Mär 2006, 19:43
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:

position := Pos(ListBox2.items[ccc] + FormatDateTime('dd', date) + FormatDateTime('hh', time),Memo1.Lines.Text); 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

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

Ups jetzt hätte ich hier fast F9 gedrückt um den Text abzuschicken
Jens
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

Re: Reg Exp in Pos()

  Alt 30. Mär 2006, 19:46
Ansonsten

Delphi-Quellcode:
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;
Damit findet man z.B. eine zweistellige Zahl mit dem Lehrzeichen davor ... kannst du ja entsprechend anpassen ._.


Oder etwa so:
Delphi-Quellcode:
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;
I hoffe ma es geht so ._. (für das * kannst/mußt du halt nur ein Zeichen nehmen, welches nicht in S2 vorkommt)
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:38 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