AW: Große String-Liste out of Memory - Hilfe?
soso zufallsgenerator....
normalerweise lese ich hier nur still mit, aber wenn ich mir das so anschaue, denke ich das du versuchst SessionID's zu ermitteln. Und da hört der Spass dann auf. Deine Märchen kannste stecken lassen. just my 2 cent |
AW: Große String-Liste out of Memory - Hilfe?
Zitat:
Allerdings: Reale IDs sind lang genug, dass unsinnig ist, diese durch Bruce-Force online knacken zu wollen und tiefergehende Kenntnisse scheinen nicht vorhanden zu sein. Bei seinen 10 Stellen bräuchte er selbst bei 1 ms pro Request ne Weile (um alles durch zu testen, erwartet halb so viel bei einer richtigen Lösung) :mrgreen: Also ist die reale Gefahr relativ gering. Außerdem ist der TE nun mehr als genug gewarnt, dass so etwas auch schnell als Angriff aufgefasst werden kann. @Pogoner: An die robots.txt solltest du dich halten, wenn du einen gutartigen Crawler programmieren möchtest. |
AW: Große String-Liste out of Memory - Hilfe?
Ja Zufallsgenerator - mein Programm ist soweit fertig wenn ich es denn einsetzen wollte. Allerdings bin ich vom Verständnis jetzt bei den Schleifen noch nicht komplett durchgestiegen, deshalb hätte es mich interessiert wie genau ich an welcher Stelle eines Strings zufällig bestimmte Zeichen einsetzen lassen kann:
Zitat:
Zitat:
Zitat:
Lösen wir mal auf - es gibt eine Rätselseite im Internet, die ein Rätsel hat, bei dem ich und ein Freund nicht weiterkommen. Die Lösungen werden erst nach einiger Zeit veröffentlicht aber - wie ich schon Anfangs gesagt habe - dies ist für mich eine sportliche Herausforderung. Die URL der Rätsel ist immer 10 Zeichen lang, ebenso wie die Lösungen. Ein grundsätzliches Muster in seinen Zufälligen URLs glaube ich auch gefunden zu haben. Nun habe ich mit dem besagten Freund eine Wette ohne Einsatz laufen, die Lösung herauszufinden, ohne im Internet danach zu suchen oder bis zur Lösungsveröffentlichung zu warten... Deswegen möchte ich nur wissen, wie ich den oben besagten String hinbekomme. Weder will ich das Pentagon hacken wie Perlsau es befürchtet, noch irgendwelche Session-ID's abfangen oder auslesen oder was weiß ich wie unser stiller Mitleser befürchtet. Schaut euch doch bitte mal den Programmcode auf Seite 1 an und meine Probleme - und dann sagt nochmal einer, dass ich so super kompetent bin... Und wie gesagt - primär geht es nicht immer um das Programm oder den lächerlichen Grund, warum ich es schreibe selbst, sonder darum, dass ich etwas dabei lerne. Wer auf diesem Forum meine alten Beiträge anschaut, erkennt, dass ich erst vor ein paar Monaten mit Datenbanken in Berührung gekommen bin und vorher nur Taschenrecher programmiert habe. Jetzt komme ich zum ersten Mal mit StringLists und ähnlichem in Berührung. Ende der Geschichte ihr Weltverschwörer... |
AW: Große String-Liste out of Memory - Hilfe?
Zitat:
Ohne diesen Link wird es immer einen fahlen Beigeschmack haben. Ich bekomme nämlich auch immer viele Mails (z.B. Jobangebote) die sagen das das alles völlig Legal ist was Sie da verspreche. Ich glaube ihnen aber trotz dieser Zusicherung nicht |
AW: Große String-Liste out of Memory - Hilfe?
Nun, ob es das Pentagon, oder eine Rätselseite ist, auch wenn jemand seine Haustür nicht verschlossen hat, ist das noch kein Grund in seine Wohnung zu spazieren.
Es gibt natürlich immer wieder den einen oder anderen, der das eher legalistisch sieht. Sei's drum, beliebt macht man sich so nicht. Gruß K-H |
AW: Große String-Liste out of Memory - Hilfe?
Je absurder ein Vorwurf, dest professioneller und genialer scheint sich derjenige zu fühlen, der ihn ausspricht.
|
AW: Große String-Liste out of Memory - Hilfe?
Zuerst:
Zitat:
Weshalb soll das ein Widerspruch sein? Ich hab die nicht-existierenden Seiten mit der Spider-Komponente gecrawlt und hab mir spider.lastHTMLtitle in ein Memofeld eintragen lassen. Bei der existierenden "Frage-Seite" kam der Titel der Website raus, bei einem zufällig generiertem String, der zu einer 404-Seite geführt hat, hat er mir einen leeren String in das Memofeld geschrieben. Zitat:
Das einzige, was ich tun will ist (da ich mit 1-2 Hinweisen nicht weiterkomme) die Allee abzulaufen und mit dem Programm einfach unter jedem Baum nachzuschauen, ob da überhaupt was ist. Die Lösungsseite ist öffentlich zugänglich und SOLL gefunden werden - allerdings eigentlich natürlich nicht durch meine Methode, sondern eben dadurch, dass man das Rätsel 'korrekt' löst. Wer die Seite wirklich wissen will, soll mich per Persönlicher Nachricht anschreiben und ich sage sie ihm. Allerdings könnte ich mir das ja auch spontan ausgedacht haben und alles, was ich bisher geschrieben habe passt nur REIN ZUFÄLLIG genau dazu... (Verschwörung!!!) Zitat:
Möglicherweise finden es manche komisch, dass ich in so einen Mist so viel Mühe stecke, aber es macht mir einfach Spaß, rumzubasteln. Wer sich an seine Anfangszeit erinnert und wie viel Mühe man in irgendwelche Taschenrechner reingesteckt hat, die man eigentlich garnicht gebraucht hat, verstehts vielleicht. Vorrausgesetzt natürlich, ihr habt auch so viel Zitat:
|
AW: Große String-Liste out of Memory - Hilfe?
Zitat:
Zitat:
|
AW: Große String-Liste out of Memory - Hilfe?
Zitat:
Ich habe es rekursiv probiert, aber ich darf in einer For-Schleife den Integer-Wert nicht verändern? Wie sage ich ihm dann, dass er immer wieder 10x durchlaufen soll? Also der Code funktioniert - aber mehrere For-Schleifen ineinander zu schachteln hab ich nicht hinbekommen...
Delphi-Quellcode:
Wenn jemand mir sagen kann, wie das hier in schön aussieht, wäre das sehr nett^^ Vorallem hätte ich dann mal ein Beispiel für verschachtelte For-Schleifen...
I:= 1 ;
I2:= 1 ; I3:= 1 ; I4:= 1 ; NichtRekursiv: // If I4 < 11 begin npw:= astring[I]+bstring[I2]+cstring[I3]+dstring[I4] ; I4 := I4 + 1; If I4 = 11 then begin I3 := I3+1 ; I4 := 1 ; end; If I3 = 27 then begin I2:= I2+1; I3 := 1; I4:= 1; end; If I2 = 11 then begin I:= I+1; I2 := 1; I3 := 1; I4 := 1; end; If (I = 26) and (I2 = 10) and (I3 = 26) and (I4 = 11) then begin Goto DasEnde ; end; showmessage (npw); Goto NichtRekursiv ; DasEnde: showmessage (npw); end; |
AW: Große String-Liste out of Memory - Hilfe?
Zitat:
|
AW: Große String-Liste out of Memory - Hilfe?
Zitat:
Im übrigen dürftest du inzwischen bemerkt haben, daß es hier keine weitere Unterstützung für dein Vorhaben gibt. |
AW: Große String-Liste out of Memory - Hilfe?
Zitat:
Fadenscheinig ist das nicht - da dich meine Alternative nicht interessiert und du von Betrügen redest, scheine ich mit meiner Vermutung ja richtig zu liegen. Desweiteren bist du der einzige hier, der nicht warnt, sondern permanent verleumdet.(Auch werfe ich nicht pauschal paranoia vor, sondern gezielt dir - eigentlich werfe ich sie auch nicht vor, sondern stelle sie fest, aber lassen wir das...) Ich habe keinerlei Interesse, mich weiter mit dir zu befassen, du ach so erwachsenes und belesenes, unglaublich gebildetes Bild von einem Mann verhälst dich nämlich wie ein kleines Kind. Hast du den ganzen Tag nichts anderes zu tun, als den Wächter von Sitte und Moral zu spielen? Uhh Nein, da will einer auf einer Rätselseite schummeln! Da muss ich sofort einschreiten! Erinnert mich an die Renter, die den ganzen Tag am Fenster stehen und Falschparker bzw fußballspielende Kinder 2 Minuten nach Beginn der Mittagsruhezeit wegen Ruhestörungbei der Polizei anzeigen. Ich habe keinerlei Interesse, mich weiter mit diesen pseudointellektuellen Debatten und Spielchen aufzuhalten. Manchen Menschen fehlt einfach das Maß. Mein Vorhaben habe ich wie ersichtlich ist auch per Goto hinbekommen - Rekursiv würde es mich nicht interessieren, weil ich es brauche, sondern weil es gerne schöner programmieren könnte. Nicht mehr, nicht weniger. Zitat:
|
AW: Große String-Liste out of Memory - Hilfe?
Bei einem Rätselanbieter im Internet betrügen zu wollen stellt eindeutig eine böse Absicht dar. Das ist garantiert nicht im Sinne des Rätselanbieters. Ist dir aber völlig gleichgültig, weil du dich nicht um die Wünsche und Bedürfnisse anderer scherst, wie du hier mehrfach dokumentierst hast.
|
AW: Große String-Liste out of Memory - Hilfe?
Zitat:
Wie schon in meinem vorigen Post geschrieben...Biegs dir zurecht wie du willst, du rechtfertigst eine Position, die völlig an der Realität vorbei ist. Nur weil ich das Rätsel nicht im Sinne des Erfinders löse, ist das bei dir böse Absicht? Wenn ich bei einem Kreuzworträtsel rate und richtig liege, habe ich dann die Bedürfnisse des Redakteurs missachtet? Entschuldige, aber bitte :-D Bei diesem Rätsel gibt es nichts zu gewinnen und solange ich den Server nicht mit übermäßig vielen Anfragen überlaste, weiß ich nicht, wo du dir da die kriminelle Energie aus den Fingern saugst. Erneut verweise ich auf meinen letzten Post. |
AW: Große String-Liste out of Memory - Hilfe?
Zitat:
MfG Dalai |
AW: Große String-Liste out of Memory - Hilfe?
Zitat:
Ich werde mir mal ein solches Tutorial mit dem Pixel suchen, Danke für die Hilfe:idea: |
AW: Große String-Liste out of Memory - Hilfe?
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
Bau die Funktion mal in ein Beispielprogramm ein und rufe sie auf, z.B. von einem Buttonklick. Welche Erwartungen hast du vorher? Welche Meldungen siehst du tatsächlich? Entsprechen diese deinen Erwartungen?
procedure Beispiel;
var i: integer; begin for i:= 1 to 10 do ShowMessage('Dies ist Schleifendurchlauf Nummer ' + IntToStr(i)); end; Zitat:
Zitat:
Zitat:
MfG Dalai |
AW: Große String-Liste out of Memory - Hilfe?
Zitat:
Offenbar klappt das Betrügen via Code aber auch nicht so recht, was mich nicht wirklich überrascht. Mit all meinen Einwänden lag ich bisher total richtig, auch wenn du ständig darum bemüht bist, deine Absichten zu relativieren. Einsicht scheinst du nicht zu kennen, denn ich habe noch keine Entschuldigung von dir gelesen:
|
AW: Große String-Liste out of Memory - Hilfe?
Zitat:
Zitat:
Delphi-Quellcode:
NichtRekursiv:
npw:= astring[I]+bstring[I2]+cstring[I3]+dstring[I4] ; I4 := I4 + 1; If I4 = 11 then begin I3 := I3+1 ; I4 := 1 ; end; If I3 = 27 then begin I2:= I2+1; I3 := 1; end; If I2 = 11 then begin I:= I+1; I2 := 1; end; If (I = 27) then begin Goto DasEnde ; end; showmessage (npw); Goto NichtRekursiv ; DasEnde: showmessage ('Ende'); end; Und @Perlsau Ich habe keine Lust auf den Kindergarten mehr Einzig zu Punkt 3 will ich mich äußern: Zitat:
Zitat:
|
AW: Große String-Liste out of Memory - Hilfe?
Zitat:
Zitat:
Zitat:
MfG Dalai |
AW: Große String-Liste out of Memory - Hilfe?
Nur mal zum Verständnis ein Beispiel für Rekursion:
Delphi-Quellcode:
Eine Funktion ruft sich bei Rekursion selbst wieder auf.
procedure SubOdInfo(WC, ExcludeWC: TWinControl; CtrlOd: Tod; var Deep: Integer); // diese Funktion ruft sich evtl. selbst wieder auf
var I: Integer; SC: TControl; SWC: TWinControl; function DataSetInfoOd(C: TComponent; CtrlOd: Tod): Boolean; begin Result := False; ... end; begin Inc(Deep); if (WC = ExcludeWC) or not DataSetInfoOd(WC, CtrlOd) then begin I := 0; while I <= WC.ControlCount - 1 do begin SC := WC.Controls[I]; if SC is TWinControl then begin SWC := (SC as TWinControl); SubOdInfo(SWC, ExcludeWC, CtrlOd, Deep); // hier rekursiver Aufruf end; Inc(I); end; end; Dec(Deep); end; Man hat dadurch mehrere Ebenen (hier in Deep nachvollziehbar) der Aufrufe, die dann wieder rückläufig verlassen werden. Das kann nützlich sein, wenn man bei einem durch eine Funktion gefundenen Ergebnis die gleiche Aktion wieder durchführen will. Jeder Durchgang hat seine eignen lokalen Variablen (z.B. I: Integer), die nach Beendigung des Durchlaufs wieder freigegeben werden. Wurden 100 Rekursionen ausgeführt wurde Deep bis 100 gezählt und wieder zurück und es wurden 100 mal die Variable I erzeugt und wieder freigegeben. |
AW: Große String-Liste out of Memory - Hilfe?
Als erstes möchte ich dir mal meine Bewunderung aussprechen. Ich bewundere Menschen die sich im Chaos zurecht finden. In dem Fall meine ich die unterschiedliche Tiefeinanordnung von Programmzeilen die zusammengehören. Da ist das Begin ein Tab tief, das dazugehörige End später fünf Tabs tief. Im Nachhinein zu wissen, dass beides zusammen gehört, erfordert ausgeprägtes abstraktes Denken. 8-) Das aber nur so nebenbei.
Nochmal zu Goto. Vergiss es. Mir fällt nichts ein wo man Goto benötigt. Ich kenne aber das Problem, denn auch ich hab mit Goto angefangen und brauchte den Klick im Kopf um mich davon zu verabschieden. Früher als es keine Prozeduren gab, konnte man vielleicht nicht anders, aber selbst früher konnte man innerhalb eines Blocks drauf verzichten. Hier zuerst dein Code, leicht abgepasst zum Testen in einer Prozedur:
Delphi-Quellcode:
Die
var
I, I2, I3, I4: Integer; npw: String; label NichtRekursiv, DasEnde; begin I4 := 0; //zum Test NichtRekursiv: //npw:= astring[I]+bstring[I2]+cstring[I3]+dstring[I4] ; I4 := I4 + 1; npw := IntToStr(I4); //als Ersatz If I4 = 11 then begin I3 := I3+1 ; I4 := 1 ; end; If I3 = 27 then begin I2 := I2+1; I3 := 1; end; If I2 = 11 then begin I := I+1; I2 := 1; end; If (I = 27) then begin Goto DasEnde ; end; showmessage (npw); Goto NichtRekursiv ; DasEnde: showmessage ('Ende'); end;
Delphi-Quellcode:
ist sehr gefährlich. Du baust hier eine Endlosschleife in dein Programm rein. Zwar gibt es das
Goto NichtRekursiv ;
Delphi-Quellcode:
als Ausgang, das kann man aber eleganter mit repeat lösen (meiner Meinung nach).
Goto DasEnde ;
Hier etwas vergleichbares, aber mit repeat.
Delphi-Quellcode:
var
I, I2, I3, I4: Integer; npw: String; begin I4 := 0; //zum Test repeat I4 := I4 + 1; npw := IntToStr(I4); //als Ersatz If I4 = 11 then begin I3 := I3+1 ; I4 := 1 ; end; If I3 = 27 then begin I2 := I2+1; I3 := 1; end; If I2 = 11 then begin I := I+1; I2 := 1; end; //showmessage (npw); until I = 27; showmessage ('Ende'); end; |
AW: Große String-Liste out of Memory - Hilfe?
Zitat:
|
AW: Große String-Liste out of Memory - Hilfe?
Das hier
Delphi-Quellcode:
geht auch so:... I := 0; while I <= WC.ControlCount - 1 do begin SC := WC.Controls[I]; if SC is TWinControl then begin SWC := (SC as TWinControl); SubOdInfo(SWC, ExcludeWC, CtrlOd, Deep); // hier rekursiver Aufruf end; Inc(I); end;
Delphi-Quellcode:
Und dieser Code hier:
for i=0 to WC.ControlCount -1 do
if WC.Controls[I] is TWinControl then SubOdInfo(TWinControl(WC.Controls[I]), ExcludeWC, CtrlOd, Deep);
Delphi-Quellcode:
Lässt sich doch einfach so schreiben:
var
I, I2, I3, I4: Integer; npw: String; begin I4 := 0; //zum Test repeat I4 := I4 + 1; npw := IntToStr(I4); //als Ersatz If I4 = 11 then begin I3 := I3+1 ; I4 := 1 ; end; If I3 = 27 then begin I2 := I2+1; I3 := 1; end; If I2 = 11 then begin I := I+1; I2 := 1; end; //showmessage (npw); until I = 27; showmessage ('Ende'); end;
Delphi-Quellcode:
Aber Sinn ergibt das nicht, vor allen Dingen nicht die innerste Schleife. Ich glaube, hier sind einfach 4 verschachtelte For-Schleifen erwünscht
var
I, I2, I3, I4: Integer; npw: String; begin for i4 := 1 to 10 do begin npw := IntToStr(I4); //als Ersatz for i3 := 1 to 26 do for i2 := 1 to 10 do begin I := I + 1; if i = 27 then goto DasEnde; end end; DasEnde: showmessage ('Ende'); end;
Delphi-Quellcode:
var
I, I2, I3, I4: Integer; npw: String; begin for i4 := 1 to 10 do begin npw := IntToStr(I4); //als Ersatz for i3 := 1 to 26 do for i2 := 1 to 10 do for i:=1 to 26 do begin // Hier sollte etwas mit i,i2,i3 und i4 passieren end; end; showmessage ('Ende'); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:13 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