AGB  ·  Datenschutz  ·  Impressum  







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

Überschrift aus Textdatei finden.

Ein Thema von Chris1896 · begonnen am 11. Jan 2011 · letzter Beitrag vom 12. Jan 2011
Antwort Antwort
Seite 1 von 3  1 23      
Chris1896

Registriert seit: 17. Nov 2010
17 Beiträge
 
#1

Überschrift aus Textdatei finden.

  Alt 11. Jan 2011, 12:10
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
- 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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Überschrift aus Textdatei finden.

  Alt 11. Jan 2011, 12:17
Such einmal hier im Forum nach Hier im Forum suchenPosEx.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Überschrift aus Textdatei finden.

  Alt 11. Jan 2011, 12:23
Kommt mir irgendwie bekannt vor >>> Mit readln nur bestimmte Textstelle auslesen
Und wie dort gilt auch hier: Ein HTML-Parser (bzw. bei XHTML geht auch ein XML-Parser) ist die bessere Wahl.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Überschrift aus Textdatei finden.

  Alt 11. Jan 2011, 13:05
Irgendwie habne ich das unbestimmte Gefühl, daß die Suche nach H1 nicht so richtig zielführend ist:

Zitat:
<div class="H2"><a href="/s/Rub0E9EEF84AC1E4A389A8DC6C23161FE44/Doc~EA0D974B76CAA416CA0AE2CBC81D14397~ATpl~Ecommon ~Scontent.html">Hunderte Schweine werden geschlachtet</a></div>
<div class="H1"><a href="/s/Rub0E9EEF84AC1E4A389A8DC6C23161FE44/Doc~EA0D974B76CAA416CA0AE2CBC81D14397~ATpl~Ecommon ~Scontent.html">Erstmals erhöhter Dioxinwert in Schweinefleisch</a></div>
<p><span style="cursor:pointer;" onclick="location='/s/Rub0E9EEF84AC1E4A389A8DC6C23161FE44/Doc~EA0D974B76CAA416CA0AE2CBC81D14397~ATpl~Ecommon ~Scontent.html';">Der Dioxin-Skandal weitet sich aus: In Niedersachsen müssen nun mehrere hundert Schweine getötet werden, weil überhöhte Dioxinwerte erstmals auch in Schweinefleisch nachgewiesen werden konnten. Am Nachmittag tagt im Bundestag der Verbraucherausschuss zum Thema <nobr>Dioxin.<a rel="nofollow" href="/s/Rub0E9EEF84AC1E4A389A8DC6C23161FE44/Doc~EA0D974B76CAA416CA0AE2CBC81D14397~ATpl~Ecommon ~Scontent.html"><img src="/f30/Images/LinkIcons/linkwinkel.gif" class="LinkWinkel" alt="" /></a></nobr></span></p><div class="LinkAbstand">&nbsp;</div>
<a href="/s/Rub0E9EEF84AC1E4A389A8DC6C23161FE44/Doc~EB567D664DE2843D09A6D26C22C8D5C08~ATpl~Ecommon ~Scontent.html" class="ArrowLinkRight">Dioxin-Skandal: Aigner will härtere Regeln für Futtermittelindustrie</a><div class="clear"></div>
</div>
</div>
da kommt man mit einem Parser doch etwas einfacher ans Ziel.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Chris1896

Registriert seit: 17. Nov 2010
17 Beiträge
 
#5

AW: Überschrift aus Textdatei finden.

  Alt 11. Jan 2011, 16:38
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;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

AW: Überschrift aus Textdatei finden.

  Alt 11. Jan 2011, 16:42
Es wäre zuckersüß von Dir, wenn Du
-statt Code-Tags Delphi-Tags verwenden würdest
-uns sagst, welche Fehler auftreten
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Überschrift aus Textdatei finden.

  Alt 11. Jan 2011, 17:03
Wollen wir wetten, daß
uses StrUtils; fehlt?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Chris1896

Registriert seit: 17. Nov 2010
17 Beiträge
 
#8

AW: Überschrift aus Textdatei finden.

  Alt 11. Jan 2011, 17:26
unit1.pas(77,1) Error: Illegal expression

und in dieser zeile steht initialization
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Überschrift aus Textdatei finden.

  Alt 11. Jan 2011, 17:38
Jetzt wäre es hilfreich die ganze Unit zu sehen, oder zumindestens die letzten 10..20 Zeilen, den initialization als soches ist fehlerfrei. Die Ursache der Fehlermeldung müßte also davor liegen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Chris1896

Registriert seit: 17. Nov 2010
17 Beiträge
 
#10

AW: Überschrift aus Textdatei finden.

  Alt 11. Jan 2011, 17:41
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 21:28 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