AGB  ·  Datenschutz  ·  Impressum  







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

Filestream als string->Pfadangabe

Ein Thema von davtix · begonnen am 7. Jan 2019 · letzter Beitrag vom 7. Jan 2019
Antwort Antwort
davtix

Registriert seit: 29. Mai 2003
Ort: Berlin
87 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Filestream als string->Pfadangabe

  Alt 7. Jan 2019, 00:18
Hi,


ich hab eine verschlüsselte Datei in einem Stream.
Diese möchte ich gerne mit der Indy Komponente htmlparser nach Suchwörtern durchsuchen lassen.
Dieser parser verlangt ein Dateipfad ... :/

Damit ich die entschlüsselte Datei nicht abspeichern muss und wieder laden zum durchsuchen, dacht ich es gibt ne Möglichkeit dem Parser gleich den Stream reinzujagen
  Mit Zitat antworten Zitat
davtix

Registriert seit: 29. Mai 2003
Ort: Berlin
87 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Filestream als string->Pfadangabe

  Alt 7. Jan 2019, 02:35
hab ma n bissel in der JvHtmlParser mit Erfolg darin rum gebastelt ^^.
Kopiert und dem Projekt hinzu gefügt.

Code:
 
  private
 
   FFileName: TFileName;
   FFileNameFS: TFileStream;    //hinzu
Code:
  published
    property FileName: TFileName read FFileName write SetFileName;
    property FileNameFS: TFileStream read FFileNameFs write FFileNameFs;                //hizu
write FFileNameFs <<< ist hundert pro falsch ^^ ich brauch die nur zum lesen.

Code:
procedure TJvHTMLParser.SetFileName(Value: TFileName);
begin


  if FFileName <> Value then
  begin
    FFileName := Value;
    if not (csDesigning in ComponentState) then
      AnalyseFile;
  end;


  if FFilenameFS <> nil then  //<<< hinzu
  begin



  end;
end;
Code:
// (rom) reimplemented with a TStringList

procedure TJvHTMLParser.AnalyseFile;
var
  List: TStringList;
begin
  List := TStringList.Create;
  try


    if FileExists(FileName) then
    begin
      List.LoadFromFile(FileName);
      AnalyseString(List.Text);
    end;

    if assigned( FileNameFS ) then        //besser noch ändern <<<
    begin
      list.LoadFromStream( FileNameFS );

      AnalyseString(List.Text);
    end;


  finally
    List.Free;
  end;

end;
Das hab ich mal zum testen so getippselt.
Es Funktioniert. bis jetzt ohne Fehler. bei Einwand bitte melden
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.857 Beiträge
 
Delphi 12 Athens
 
#3

AW: Filestream als string->Pfadangabe

  Alt 7. Jan 2019, 04:02
Wozu änderst du denn da die Komponente? AnalyseString ist doch nach außen verfügbar. Du kannst einfach eine TStringList extern erzeugen und das dann aufrufen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
davtix

Registriert seit: 29. Mai 2003
Ort: Berlin
87 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Filestream als string->Pfadangabe

  Alt 7. Jan 2019, 10:56
parser.strings <<< :/ ist mir gar nicht aufgefallen

hmm.. dann müsst ich die ganze datei erst in ne stringlist list packen und die ist gross. das dauert

-- na ich teste mal
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#5

AW: Filestream als string->Pfadangabe

  Alt 7. Jan 2019, 11:16
hmm.. dann müsst ich die ganze datei erst in ne stringlist list packen und die ist gross. das dauert
Ja, is klar. Du meinst den Streaminhalt in eine Stringlist laden dauert länger als den Streaminhalt in eine Stringlist laden.
Code:
// (rom) reimplemented with a TStringList

procedure TJvHTMLParser.AnalyseFile;
var
  List: TStringList;
begin
  List := TStringList.Create;
  try


    if FileExists(FileName) then
    begin
      List.LoadFromFile(FileName);
      AnalyseString(List.Text);
    end;

    if assigned( FileNameFS ) then        //besser noch ändern <<<
    begin
      list.LoadFromStream( FileNameFS ); // Was machen wir denn hier?

      AnalyseString(List.Text);
    end;


  finally
    List.Free;
  end;

end;
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.554 Beiträge
 
Delphi 7 Professional
 
#6

AW: Filestream als string->Pfadangabe

  Alt 7. Jan 2019, 11:17
Parser.Strings ist doch vom Typ TStrings.

Damit sollte dann doch sowas möglich sein: Parser.Strings.LoadFromStream(FileNameFS);
  Mit Zitat antworten Zitat
davtix

Registriert seit: 29. Mai 2003
Ort: Berlin
87 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Filestream als string->Pfadangabe

  Alt 7. Jan 2019, 13:13
@ schokohase ( list.LoadFromStream( FileNameFS ); // Was machen wir denn hier? )

ja, ich habe die beiden Dateien nicht im Kopf verbunden.


ich hab das mal zum testen mit der Originalen JvHtmlParser.pas gemacht


Code:
   FS1 := TfileStream.Create( extractfilepath ( application.ExeName) + '0.txt', fmCreate ); //fmOpenReadWrite
   memo2.Lines.LoadFromFile(  extractfilepath ( application.ExeName) + 'testdatei.txt' );


  if not ( assigned( tempSL )) then tempSL := Tstringlist.Create;


//  tempSL.AddStrings( memo2.Lines );   //   --> SL
  memo2.Lines.SaveToStream( FS1 );       // --> FS

             //kontrolle
//  memo6.Lines.AddStrings( tempSL );         //SL
    FS1.Position := 0;
  memo6.Lines.LoadFromStream( FS1 );
dann :
Code:
//   JvHtmlParser1.Parser := tempSL;     /////<< hier Fehler " ist kein integer


   FS1.Position := 0;     //?
   JvHtmlParser1.Parser.LoadFromStream( FS1 );     /////<< NIX
ich hab ne html seite gespeichert und mal von <title> bis </title> als suche geschrieben

analyse button
Code:
JvHtmlParser1.ClearConditions;

  JvHtmlParser1.AddCondition( 'title' , '<title>' , '</title>' , 3);

  JvHtmlParser1.AnalyseFile;
3 = die ganze zeile ausspucken
Code:
procedure TJvHTMLParser.AddCondition(const Keyword: string;
  const StartTag: string; const EndTag: string; TextSelection: Integer);
im parser
Code:
  memo1.Lines.Add( '--------' );
  memo1.Lines.Add( '-' + key + '-' + results );
Wenn ich die Stringlist nehme sagt da Fehler " ist kein integer;
Wenn ich den fileStream nehme passiert nix.
  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 05:05 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 by Thomas Breitkreuz