Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Nach unbestimmten String suchen (https://www.delphipraxis.net/162164-nach-unbestimmten-string-suchen.html)

himitsu 11. Aug 2011 12:53

AW: Nach unbestimmten String suchen
 
Delphi 6

schau mal in die DP-CodeLib

ältere Delphi kennen noch kein PosEx :stupid: (das sollte aber auch via SuFu in mehreren/ganz vielen "Wo ist PosEx"-Suchthreads schonmal beantworten worden sein)

Paulh 11. Aug 2011 12:55

AW: Nach unbestimmten String suchen
 
Danke :mrgreen: :mrgreen:

DeddyH 11. Aug 2011 13:00

AW: Nach unbestimmten String suchen
 
Hab ich da eine Frage verpasst? Irgendwie passen die beiden vorherigen Posts nicht in den Zusammenhang :gruebel:

himitsu 11. Aug 2011 13:00

AW: Nach unbestimmten String suchen
 
Er sucht immernoch PosEx, auch nach den vielen Tipps, wo und in welcher Unit "wir" PosEx bei uns finden.
Irgendwo weiter vorne stand aber mal was von Delphi 6, welches alt genug sein könnte, um PosEx noch garnicht zu kennen.


@Paulh: Um sowas einfacher/schneller entdecken zu können, kann man in seinem DP-Profil die genutzte Delphi-Version angeben.


[edit]
ups, das "D6" war von Jumpy ... k.A. welche Version Paulh hat.

[edit]
hmm, er hat 2007 ... also das sollte PosEx doch schon kennen (glaub ich)

Jumpy 11. Aug 2011 13:11

AW: Nach unbestimmten String suchen
 
Zitat:

Zitat von DeddyH (Beitrag 1116192)
:lol: 3 mal hält besser.

:oops: Ähhm, ich hab auf #10 geantwortet, ohne zu sehen, dass es für den Thread schon eine zweite Seite gab. Aber zumindest hab ich die selbe Idee gehabt, wie die meisten von euch.:-D

Paulh 13. Aug 2011 09:48

AW: Nach unbestimmten String suchen
 
Ich check das nicht...

Edit1.text=HTML Datei.
Delphi Code:
Delphi-Quellcode:
var
anfang,ende:integer;
s,alterpfad,neuerpfad:string;
begin
form3.Height:=534;
try
memo1.Lines.LoadFromFile(edit1.Text);
except
  showmessage('Datei konnte nicht geladen werden.'#10#13+'Pfad richtig ?');
end;
if checkbox1.Checked=true then
begin
s := memo1.Lines.Text;
Anfang := PosEx('src="', s, 0);
showmessage(inttostr(anfang));
while Anfang > 0 do
  begin
    Anfang := Anfang + Length('src="');
    Ende := PosEx('"', s, Anfang);
    alterpfad:=copy(s,anfang,ende-anfang);
    Delete(s, Anfang, Ende - Anfang);
    Insert(NeuerPfad, s, Anfang);
    Anfang := PosEx('src="', s, Ende);
  end;
Memo1.Lines.Text := s;
showmessage(alterpfad);
end;
end;
HTML Datei:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
 <title>Leer.php</title>
</head>
<body>
&nbsp;Hier kann Ihr Text mir Formatirung rein.<br>
<br>
<img style="width: 800px; height: 600px;" alt=""
 src="file:///C:/Dokumente%20und%20Einstellungen/All%20Users/Dokumente/Eigene%20Bilder/Beispielbilder/Sonnenuntergang.jpg"><br>
</body>
</html>
Anfang ist IMMER = 0

Sagt mir bin ich zu doof ?

himitsu 13. Aug 2011 11:35

AW: Nach unbestimmten String suchen
 
Zitat:

Delphi-Quellcode:
PosEx('src="', s, 0);

Eine 0? Strings fangen bei 1 an.

Und hast du mal im Debugger nachgesehn, ob auch wirklich das Richtige in s drinsteht?


Zitat:

Delphi-Quellcode:
if checkbox1.Checked=true then

=true ... Sowas macht man nicht! ( wo ist der Aufdiepfotenhauensmilie? )

Delphi-Quellcode:
if checkbox1.Checked then
(die Gründe wurden schon oft genug, in unzähligen Threads erklärt)

Zitat:

Delphi-Quellcode:
except
  showmessage('Datei konnte nicht geladen werden.'#10#13+'Pfad richtig ?');
end;

Pfad richtig ? ... Woher soll man das wissen, wenn du doch die "eigentliche" Fehlermeldung zerstört hast?
Eventuell fehlten auch nur die Zugriffsrechte?

Delphi-Quellcode:
except
  on E: Exception do begin
    E.Message := 'Datei konnte nicht geladen werden.' + sLineBreak + 'Pfad richtig ?' + sLineBreak + sLineBreak + E.Message;
    raise;
  end;
end;
oder laß das Try-Except einfach weg.

Außerdem würde der nachfolgende Code (bei dir) auch ausgeführt, selbst wenn keine Datei geladen wurde.

Wenn man über Try-Except die Fehlermeldung verändert, dann nur Verständlicheres hinzufügen und maximal noch Unwichtigeswichtiges entfernen oder durch eine gleichwertige Information ersetzen.

Zitat:

Delphi-Quellcode:
s := memo1.Lines.Text;

Ist zwar kein Fehler, aber nimm besser
Delphi-Quellcode:
s := Memo1.Text;
, denn .Lines zerlegt den zusammenhängenden Text im Memo in einzelne Zeilen, um ihn danach über .Lines.Text gleich wieder zusammenzusetzen.
Memo1.Text ließt dagegen direkt aus dem Memo.


Und der Windows-Zeilenumbruch nennt sich #13#10 und nicht #10#13.
CR+LF = #13#10 = #$0D#$0A = Delphi-Referenz durchsuchensLineBreak (unter Windows)

Paulh 13. Aug 2011 12:46

AW: Nach unbestimmten String suchen
 
Immer auf die Anfänger :)

Ja, in s steht das richtige drin, das Memo wird schon vorherbefüllt.

Es war die böse 0 :) Mit 1 geht es. :bounce1:

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 Uhr.
Seite 3 von 3     123   

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