AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Große String-Liste out of Memory - Hilfe?
Thema durchsuchen
Ansicht
Themen-Optionen

Große String-Liste out of Memory - Hilfe?

Ein Thema von Pogoner · begonnen am 20. Apr 2014 · letzter Beitrag vom 23. Apr 2014
 
Pogoner

Registriert seit: 10. Okt 2013
22 Beiträge
 
Delphi 6 Enterprise
 
#11

AW: Große String-Liste out of Memory - Hilfe?

  Alt 20. Apr 2014, 23:28
Bei solchen Rekursionen muss man zwar auf seinen Stack aufpassen, aber da der Parameter als const übergeben wird, der lokale string auf dem Heap angelegt wird und die Rekusionstiefe maximal endlen ist sollte das kein Problem werden. Diese Lösung verbraucht fast gar keinen Speicher.
Ich musste 2x lesen:)

Erstmal vielen vielen Dank für die Mühe, mir eine konkrete Lösung hinzuschreiben :thumb:

Also nachdem ich es jetzt geschafft habe, diese Prozeduren richtig zu deklarieren und TForm1 davorzumachen, musste ich es etwas drehen, weil er sonst einen Fehler gebracht hat (; erwartet aber . gefunden bei TForm1"."CheckURL):

Allerdings ist noch irgendein Fehler drin?

Delphi-Quellcode:
function TForm1.bruteforce(astring: string;substr: string; startlen: integer; endlen: integer):LongInt;

{das hier hab ich nach oben}

  var
  I: Integer;

begin
  For I := 1 to length(substr) do begin
    TesteString(substr[I]);
  end;
  end;



procedure TForm1.CheckURL(const url: string);
begin
//spider.Initialize(urlk);
// spider.CrawlNext();
    showmessage ('CheckURL');
    Edit1.Text := Spider.LastUrl;
    Edit2.Text := Spider.LastHtmlTitle;

    If Edit2.Text = 'Vorhandenthen begin
      Memo4.Lines.Add (Edit1.Text);
      end;
end;

procedure TForm1.TesteString(const Basis: string);
var
    npw: string;
    I: Integer;
  begin
 // Showmessage ('works'); //Message kommt
    for I := 1 to Length(astring) do begin
      npw := Basis + astring[I];
  // showmessage (npw); //Message kommt nicht
      if startlen <= Length(npw) then begin
        CheckURL(urls + npw);
      end;
      { Abbruchbedingung }
      if Length(npw) < endlen then begin
        { hier probieren wir dann ein Zeichen mehr }
 // showmessage (npw + 'Nr.2'); //Message kommt nicht
        TesteString(npw);
      end;
    end;
  end;
Angesteuert hab ich es per bruteforce('abcd','abcd',2,2); - Aber bis auf die erste Nachricht kommt nichts weiter? :?
  Mit Zitat antworten Zitat
 

 

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 04:20 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