![]() |
Überschrift aus Textdatei finden.
Hallo Leute,
habe folgende Aufgabe bekommen und weiß nicht wie ich Anfangen soll (Bin noch frischling im Programmieren mit Delphi) - Quelltext von FAZ.net als text datei speichern. Okay das bekomme ich auch noch hin :D - Dieser Inhalt soll nun auf seine Titelzeilen untersucht werden. Die Titelzeilen sind per Knopfdruck in einem Memofeld auszugeben. Dazu lesen Sie die Datei Zeile für Zeile und werten diese dann aus. - Zum Finden einer Überschrift suchen Sie den Unterstring ' “H1“>'. Daraufhin suchen Sie das folgende 'größer'-Zeichen. Hier fängt der Titel an. Er endet vor dem folgenden 'kleiner'-Zeichen. Ggf. enthält eine Zeile mehrere Titel. Wenn Sie die Zeile durchgearbeitet haben,lesen Sie die nächste und so fort, bis zum Ende der Datei. Die Anzahl der Überschriften ist in einem Label auszugeben. Ich hoffe ihr könnt mir helfen. Gruß Chris |
AW: Überschrift aus Textdatei finden.
Such einmal hier im Forum nach
![]() |
AW: Überschrift aus Textdatei finden.
Kommt mir irgendwie bekannt vor :gruebel: >>>
![]() Und wie dort gilt auch hier: Ein HTML-Parser (bzw. bei XHTML geht auch ein XML-Parser) ist die bessere Wahl. |
AW: Überschrift aus Textdatei finden.
Irgendwie habne ich das unbestimmte Gefühl, daß die Suche nach H1 nicht so richtig zielführend ist:
Zitat:
Gruß K-H |
AW: Überschrift aus Textdatei finden.
Danke schonmal für die Hilfe, komme aber irgendwie trotzdem nicht weiter habe folgenden Quellcode hier im Forum gefunden und wenn ich das Testen will kommen Fehler
Code:
s := 'Hallo; Guten Tag; Guten Morgen; Guten Abend;';
Pos1 := Pos(';', s); if Pos1 <> 0 then // erstes Semikolon gefunden begin // Position des zweiten Semikolons ermitteln; // dazu fangen wir gleich nach dem ersten Semikolon an zu suchen: Pos2 := PosEx(';', s, Pos1 + 1); if Pos2 <> 0 then ShowMessage('gefunden an Position: ' + IntToStr(Pos2)) else ShowMessage('nur ein Semikolon im String vorhanden'); end else begin ShowMessage('kein Semikolon im String vorhanden'); end; |
AW: Überschrift aus Textdatei finden.
Es wäre zuckersüß von Dir, wenn Du
-statt Code-Tags Delphi-Tags verwenden würdest -uns sagst, welche Fehler auftreten |
AW: Überschrift aus Textdatei finden.
Wollen wir wetten, daß
Delphi-Quellcode:
fehlt?
uses StrUtils;
Gruß K-H |
AW: Überschrift aus Textdatei finden.
unit1.pas(77,1) Error: Illegal expression
und in dieser zeile steht initialization |
AW: Überschrift aus Textdatei finden.
Jetzt wäre es hilfreich die ganze Unit zu sehen, oder zumindestens die letzten 10..20 Zeilen, den
Delphi-Quellcode:
als soches ist fehlerfrei. Die Ursache der Fehlermeldung müßte also davor liegen.
initialization
Gruß K-H |
AW: Überschrift aus Textdatei finden.
Button1Klick war nur ne probe die funktioniert hat...
Benutze Lazarus aber ist doch eigentlich wie delphi oder kommt das dadurch? Danke dir für deine Hilfe
Delphi-Quellcode:
unit Unit1;
{$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, StrUtils; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Button2: TButton; Edit1: TEdit; Label1: TLabel; Memo1: TMemo; OpenDialog1: TOpenDialog; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation { TForm1 } procedure TForm1.Button1Click(Sender: TObject); var F: TextFile; S: string; begin if OpenDialog1.Execute then { Dialog zum Dateiöffnen anzeigen } begin AssignFile(F, OpenDialog1.FileName); { Datei ausgewählt } Reset(F); Readln(F, S); { Erste Zeile der Datei lesen } Edit1.Text := S; { String in ein TEdit schreiben } CloseFile(F); end; end; procedure TForm1.Button2Click(Sender: TObject); var Pos1, Pos2, Pos3: byte; s : string; f : textfile; begin s := 'Hallo; Guten Tag; Guten Morgen; Guten Abend;'; Pos1 := Pos(';', s); if Pos1 <> 0 then // erstes Semikolon gefunden begin // Position des zweiten Semikolons ermitteln; // dazu fangen wir gleich nach dem ersten Semikolon an zu suchen: Pos2 := PosEx(';', s, Pos1 + 1); if Pos2 <> 0 then edit1.Text:='gefunden an Position: ' + IntToStr(Pos2) else ShowMessage('nur ein Semikolon im String vorhanden'); end else begin ShowMessage('kein Semikolon im String vorhanden'); end; initialization {$I unit1.lrs} end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 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