Delphi-PRAXiS
Seite 4 von 6   « Erste     234 56      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi wie benutze ich regular expressions? (https://www.delphipraxis.net/134919-wie-benutze-ich-regular-expressions.html)

nat 4. Jun 2009 16:23

Re: wie benutze ich regular expressions?
 
tja, so müsst ich raten...
könnte noch daran liegen:
Delphi-Quellcode:
LiBoPicsFoundInPages.Items[i]:=filename;
hat die listbox denn schon sovielel emente? sonst mußte du
Delphi-Quellcode:
 LiBoPicsFoundInPages.Items.Add(filename);
machen.
wenn das nich geholfen hat, dann debugge deinen code mal und sage mir bei welcher
zeile genau der fehler kommt.

edit:
i.ü. ist das ziemlich ungünstig
Delphi-Quellcode:
filename:=copy(re.Match[1],idx+1,40)
was machste denn wenn du dateien hast die mehr als 40 zeichen haben?
besser du machst da was mit length(Match[1])

nimmersattXD 4. Jun 2009 16:30

Re: wie benutze ich regular expressions?
 
puuh jetzt kommt zwar die fehlermeldung immernoch, aber wenigstens fuellt sich meine listbox mit bildernamen *freu*

nahpets 4. Jun 2009 16:40

Re: wie benutze ich regular expressions?
 
Hallo,

Du hast am Ende einen Fehler in der Repeatschleife, du suchst da zweimal die nächste Übereinstimmung.
Delphi-Quellcode:
such:=re.Exec(page.Text);
if such then
repeat
  idx:=LastPos('/',re.match[1]);
  if idx > 0 then filename:=copy(re.Match[1],idx+1,40)
    else filename:=re.match[1];
  LiBoPicsFoundInPages.Items[i]:=filename;
//  such:=re.ExecNext <-- der ist zuviel!!!
until not re.ExecNext;
eigentlich sollte
Delphi-Quellcode:
if re.Exec(page.Text) then
repeat
  idx:=LastPos('/',re.match[1]);
  if idx > 0 then filename:=copy(re.Match[1],idx+1,40)
    else filename:=re.match[1];
  LiBoPicsFoundInPages.Items[i]:=filename;
until not re.ExecNext;
reichen.

nat 4. Jun 2009 16:43

Re: wie benutze ich regular expressions?
 
hatte ich eben auch noch gesehen. aber eigentlich dürfte das keine zugriffsverletzung auslösen.
höchstens ne expception.

edit: und ich warte noch immer auf die zeile in der es knalle... :roll:

nimmersattXD 4. Jun 2009 16:45

Re: wie benutze ich regular expressions?
 
danke fuer den post, aber wenn ich das auskommentiere kommt meine fehlermeldung immernoch! :cry: menno


edit: achja das mit dem debuggen, wie mache ich das denn?

nahpets 4. Jun 2009 17:00

Re: wie benutze ich regular expressions?
 
Hallo,

einen habe ich noch:
Delphi-Quellcode:
for i:=0 to LiBoSit.Count do
bitte ändern in
Delphi-Quellcode:
for i:=0 to LiBoSit.Count - 1 do
Du greifst da regelmäßig auf einen nicht existierenden Eintrag zu.

nat 4. Jun 2009 17:02

Re: wie benutze ich regular expressions?
 
oh ha, du solltest ma n delphi-crashkurs machen... 8)
klicke links neben einer zeile auf den punkt oder was auch immer da is.
wenn die zeile sich einfärbt haste da n breakpoint gesetzt.
wenn dein programm dort ankommt hält es an. mit F7 bzw F8 kannst du schritt
für schritt durch deine anweisungen durch gehen. mit F9 läuft es wieder
normal weiter.

nimmersattXD 4. Jun 2009 19:53

Re: wie benutze ich regular expressions?
 
crash kurs?? ja :D mmh mein lehrer hatte mir das mal gezeigt, aba wusste nich das das so heißt :cyclops:


ok also der hat mit meinem loadfromfile am anfang der zählschleife probleme, da kommt dann die fehlermeldung, aber erst wenn die zählschleife bei 1 is, 0 macht sie komplett durch!

komisch weil der pfad eigentlich bei allen htmls ähnlich is :roll:

nat 4. Jun 2009 21:06

Re: wie benutze ich regular expressions?
 
du gibst page ja auch im ersten schleifen durchlauf mit free frei.
danach ist page kein object mehr und ein zugriff darauf gibt eine
zugriffsverletzung.

stell das in etwa so um:
Delphi-Quellcode:
page := TStringList.Create; //oder was page auch is, grad nich geguckt
try
  for i:=.....
  begin
  end;
finally
  page.free;
end;

nimmersattXD 4. Jun 2009 22:27

Re: wie benutze ich regular expressions?
 
klingt logisch und funst auch :D *freu* könnt dich knuddeln :cheer:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:42 Uhr.
Seite 4 von 6   « Erste     234 56      

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