Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Große String-Liste out of Memory - Hilfe? (https://www.delphipraxis.net/180065-grosse-string-liste-out-memory-hilfe.html)

newbe 21. Apr 2014 23:11

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

BUG 22. Apr 2014 00:28

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

Zitat von newbe (Beitrag 1256413)
denke ich das du versuchst SessionID's zu ermitteln.

Es könnte fast alles sein ... mittlerweile ist es ja üblich, eine spezielle URL als Zugangsberechtigung zu haben. Was ich prinzipiell auch nicht schlecht finde.

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.

Pogoner 22. Apr 2014 01:36

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:

a1a1, a1a2, a1a3, ..., c3g6, c4g7, c4g8, ..., z0z0
€dit: Außerdem wollte ich das negative Image der "bruteforce"-Funktion hier nicht weiter pflegen, da ja einige hier sehr paranoid darauf reagiert haben.

Zitat:

Zitat von Perlsau (Beitrag 1256388)
Und du glaubst wirklich, das wäre legal?

Ja das tue ich - bitte schreib den Paragraphen hier hin, anstatt "belesene" Tiraden abzuhalten. Ansonsten hör auf, mir Sachen zu unterstellen.

Zitat:

Zitat von newbe (Beitrag 1256413)
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

Auf die Gefahr hin, dass man es mir nicht glaubt - Ich denke, ich werde maßlos überschätzt... Nachdem ich (Achtung Märchen:) mir grade Wikipedia durchgelesen habe, glaube ich, deine Bedenken zu verstehen... Allerdings wäre mir der Ehre zu viel zu Teil, wenn mein Programm zum Abgreifen irgendwelcher Deep-Links o.ä. geeignet wäre :-D

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...

Bernhard Geyer 22. Apr 2014 09:05

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

Zitat von Pogoner (Beitrag 1256420)
Lösen wir mal auf - es gibt eine Rätselseite im Internet, die ein Rätsel hat, ...

Ende der Geschichte ihr Weltverschwörer...

Dann Postet doch die URL zu dieser Rätselseite. Das würde alle Diskussionen schlagartig beenden.
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

p80286 22. Apr 2014 10:07

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

Dejan Vu 22. Apr 2014 10:45

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.

Pogoner 22. Apr 2014 12:00

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

Zitat von EWeiss (Beitrag 1256390)
@Pogoner: Die nichtexistierenden Seiten haben keinen HTML-Titel - also es wird nichts eingetragen...

ein widerspruch in sich selbst..[/QUOTE]
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:

Zitat von p80286 (Beitrag 1256458)
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

Ich will das mal so darstellen, wie es wirklich ist: Jemand gibt dir Verschiedenste Hinweise, die dich irgendwann an einen bestimmten Baum in einer Allee führen, unter dem das nächste Rätsel liegt.
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:

Zitat von Dejan Vu (Beitrag 1256466)
Je absurder ein Vorwurf, dest professioneller und genialer scheint sich derjenige zu fühlen, der ihn ausspricht.

Dazu kann man nichts mehr hinzufügen...
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:

kriminelle Energie
...

Dejan Vu 22. Apr 2014 12:13

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

Zitat von Pogoner (Beitrag 1256477)
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!!!)

Vorsicht, Du kommst da nicht mehr raus:
Zitat:

Zitat von Life of Brian
"Ich bin nicht der Messiahs! Würdet ihr mir bitte zuhören! Ich bin nicht der Messiahs! Versteht ihr das? Ganz, ganz ehrlich!" - "Nur der wahrhaftige Messiahs leugnet seine Göttlichkeit!" "Was? Ihr müsst mir doch "ne Chance lassen, da rauszukommen! Also gut: Ich bin der Messiahs!" - "Er ist es! Er ist der Messiahs!"

PS: Bezüglich einer möglichen Optimierung wurde hier aber schon einiges Sinnvolle zwischen den Verschwörungstheorien gepostet. Wer suchet, der findet.

Pogoner 22. Apr 2014 18:10

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

Zitat von Dejan Vu (Beitrag 1256480)
PS: Bezüglich einer möglichen Optimierung wurde hier aber schon einiges Sinnvolle zwischen den Verschwörungstheorien gepostet. Wer suchet, der findet.

Ja mit dem finden ist das eine Sache, mit dem anwenden können eine andere:)

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:
                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;
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...

Popov 22. Apr 2014 18:16

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

Zitat von Pogoner (Beitrag 1256339)
Leute - ich möchte bei einer Seite einfach nur wissen, ob eine nicht verlinkte Unterseite mit einer mir bekannten String-Länge existiert. Ich will nichts hacken:roll:

Trotzden, so was kann ungeplante Folgen haben. Da es viele Jahre her ist und es nicht Absicht war und es die Seite inzwischen sowieso nicht mehr gibt, kann ich es ja sagen - so was in der Art habe ich auch mal gemacht. Nur ein harmloser Test. Mit bösen Folgen. Nicht für mich und nicht bewusst, ich wollte nur etwas testen. Das Ergebnis war, und das wundert mich bis heute, dass auf der anderen Seite etwas passiert ist. Plötzlich war die Seite weg, nach paar Minuten wieder da, nur... sagen wir mal so, ich und alle anderen Kunden waren plötzlich schuldenfrei, bzw. der Verbrauch wurde genullt. War weniger spassig als es sich anhört, denn ich erwartete Konsequenzen. Kamm aber nichts. Seit dem mache ich auf jeden Fall keine harmlosen Tests mehr im Internet mit fremden Seiten. Solltest du auch nicht.

Perlsau 22. Apr 2014 18:35

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

Zitat von Pogoner (Beitrag 1256477)
Wer die Seite wirklich wissen will, soll mich per Persönlicher Nachricht anschreiben und ich sage sie ihm.

Genau das hatte ich bereits gemacht. Du jedoch hast mir die versprochene Information mit einer fadenscheinigen Begründung verweigert: Da wirfst du anderen pauschal Paranoia vor, verweigerst jedoch die Herausgabe der versprochenen URL mit der Begründung, ich könne ja dann den Betreiber davor warnen, daß du vor hast, beim Rätselraten zu betrügen. Das nenne ich mal satt in die Nesseln gesetzt. Wieso schreibst du's nicht gleich: Wer mir zustimmt und meiner Meinung ist, kriegt die URL, alle anderen, die mich vor Konsequenzen und Illegalität warnen, kriegen sie natürlich nicht. Die Antwort lautet natürlich, weil du dein Gesicht wahren möchtest. Das hab ich dir jetzt hoffentlich gründlich verdorben!

Im übrigen dürftest du inzwischen bemerkt haben, daß es hier keine weitere Unterstützung für dein Vorhaben gibt.

Pogoner 22. Apr 2014 18:52

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

Zitat von Perlsau (Beitrag 1256568)
Zitat:

Zitat von Pogoner (Beitrag 1256477)
Wer die Seite wirklich wissen will, soll mich per Persönlicher Nachricht anschreiben und ich sage sie ihm.

Du jedoch hast mir die versprochene Information mit einer fadenscheinigen Begründung verweigert: Da wirfst du anderen pauschal Paranoia vor...beim Rätselraten zu betrügen. ...Das hab ich dir jetzt hoffentlich gründlich verdorben!



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:

Zitat von Popov (Beitrag 1256567)
Trotzden, so was kann ungeplante Folgen haben.... Seit dem mache ich auf jeden Fall keine harmlosen Tests mehr im Internet mit fremden Seiten. Solltest du auch nicht.

Okay, das klingt wirklich nicht spaßig... Wird der Server bei 12 Aufrufen von nicht-existenten Seiten denn wirklich so stark belastet? Ich meine die Seite hat keine Accounts, noch hat sie sonst etwas außer diese Rätsel auf ihr - Das hat mir noch niemand beantwortet..

Perlsau 22. Apr 2014 19:03

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.

Pogoner 22. Apr 2014 19:26

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

Zitat von Perlsau (Beitrag 1256571)
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.

So langsam wirds lächerlich... "betrügen" - Die Bedürfnisse des Rätselanbieters?
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.

Dalai 22. Apr 2014 20:14

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

Zitat von Pogoner (Beitrag 1256566)
Also der Code funktioniert - aber mehrere For-Schleifen ineinander zu schachteln hab ich nicht hinbekommen...
[...]
Vorallem hätte ich dann mal ein Beispiel für verschachtelte For-Schleifen...

:shock: Das hattest du doch bereits gepostet/geschrieben?! Irgendwie ist dir anscheinend noch nicht klar, was du da eigentlich tust, also im programm-/codetechnischen Sinn. Solange dir nicht die Grundlagen von verschachtelten Schleifen und/oder Rekursion klar sind, wird's schwierig. Eine gewisses Maß an Abstraktion ist notwendig, um Gedanken, Ideen und Konzepte in Code umzusetzen, aber vorher müssen die Mittel, die Algorithmen, die Techniken klar sein. Such dir mal ein geeignetes Tutorial oder sowas, wo geschachtelte Schleifen und Rekursion erklärt werden, sinnvollerweise anhand von Beispielen; bei geschachtelten for-Schleifen fällt mir spontan das Durchlaufen eines Bildes Pixel für Pixel ein, eine Schleife für die x-Richtung, die andere für die y-Richtung.

MfG Dalai

Pogoner 22. Apr 2014 20:20

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

Zitat von Dalai (Beitrag 1256579)
Das hattest du doch bereits gepostet/geschrieben?!... bei geschachtelten for-Schleifen fällt mir spontan das Durchlaufen eines Bildes Pixel für Pixel ein, eine Schleife für die x-Richtung, die andere für die y-Richtung.MfG Dalai

Naja das was ich geschrieben habe ist ja mit Goto - in einer For-Schleife durfte ich den Integer nicht verändern, daher war mir nicht klar, wie ich sie mehrmals von 1-10 laufen lassen sollte. Daher bin ich mal in alte Muster verfallen. Ist der Code mit Goto langsamer als mit For-Schleifen?


Ich werde mir mal ein solches Tutorial mit dem Pixel suchen, Danke für die Hilfe:idea:

Dalai 22. Apr 2014 21:23

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

Zitat von Pogoner (Beitrag 1256581)
Naja das was ich geschrieben habe ist ja mit Goto

Nö, ich meine Beitrag #32 in diesem Thread, was dein eigener ist. Da hast du doch bereits 4 verschachtelte for-Schleifen drin.

Zitat:

[...] in einer For-Schleife durfte ich den Integer nicht verändern [...]
Naja, logisch. Das macht die Schleife selbst. Eine for-Schleife läuft von einem Startwert bis zu einem Endwert (auf- oder absteigend) und bei jedem Durchlauf ist die Laufvariable um eins höher oder niedriger; dafür muss man keinen weiteren Code schreiben.

Zitat:

[...] daher war mir nicht klar, wie ich sie mehrmals von 1-10 laufen lassen sollte.
Dann solltest du vielleicht das weiter verfolgen. Beispiel einer simplen for-Schleife:
Delphi-Quellcode:
procedure Beispiel;
var i: integer;
begin
    for i:= 1 to 10 do
        ShowMessage('Dies ist Schleifendurchlauf Nummer ' + IntToStr(i));
end;
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?

Zitat:

Daher bin ich mal in alte Muster verfallen.
Ja, das seh ich.

Zitat:

Ist der Code mit Goto langsamer als mit For-Schleifen?
Keine Ahnung. Ich schätze mal ja, aber für die paar Durchläufe insgesamt wird das kaum ins Gewicht fallen. Der Punkt ist weniger die Geschwindigkeit sondern die sehr große Chance, damit Spaghetti-Code zu produzieren, weil man schnell dem Drang erliegt, die Sprungziele zu nutzen, "weil sie ja eh einmal da sind". Jeder, der sich in den Code einlesen soll, wird dafür deutlich mehr Zeit brauchen, als es bei vernünftiger Schleifenprogrammierung der Fall wäre, weil bei letzterem von vornherein klar ist, wo die Schleife anfängt und aufhört (und oft sogar, wie viele Durchläufe sie hat).

Zitat:

Ich werde mir mal ein solches Tutorial mit dem Pixel suchen, Danke für die Hilfe:idea:
Das war nur ein Beispiel, das mir sofort einfällt, weil ich es aus der Vorlesung kenne. Keine Ahnung, ob das in der Form irgendwo online zu finden ist.

MfG Dalai

Perlsau 22. Apr 2014 21:37

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

Zitat von Pogoner (Beitrag 1256574)
So langsam wirds lächerlich... "betrügen" - Die Bedürfnisse des Rätselanbieters?

Selbstverständlich möchtest du betrügen: Ein Rätsel zu lösen bedeutet, den Anforderungen der Aufgabe gerecht zu werden. Das schaffst du offenbar nicht, möchtest aber nicht dumm dastehen und wenigsten den Anschein erwecken, du hättest es gelöst. Das motiviert dich dazu, Code zu schreiben, um dir den Anschein, die Lösung gefunden zu haben, zu erschleichen, und zwar auf einem Weg, der nicht im Sinne des Rätselanbieters und sicher auch nicht im Sinne des Seitenbetreibers ist. Was dich aber nicht kümmert – Du holst es dir trotzdem: Wenn ich als Seitenbetreiber nicht will, daß du dir URLs versteckter Seiten beschaffst und die dann runterlädst, muß ich befürchten, daß dich mein Wille nicht kümmert und du dich einfach darüber hinwegsetzt. Das nenne ich feindselig bis bösartig! Freundlich oder neutral ist es jedenfalls nicht ...

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:
  1. für das Verweigern der URL, die du zu hacken versuchst;
  2. für die Behauptung, ich wäre paranoid, obwohl du selbst offensichtliche Paranoia zeigst, indem du die Herausgabe der URL mit der Angst begründest, von mir beim Betreiber verraten zu werden;
  3. für die Beleidigung durch das Unterstellen der Unfähigkeit, lesen zu können;
  4. für die allgemeine Lächerlichmachung meiner durchaus begründeten Einwände;
  5. für die mehrfache Unterstellung der Verleumdung.

Pogoner 22. Apr 2014 21:43

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

Zitat von Dalai (Beitrag 1256591)
Zitat:

Zitat von Pogoner (Beitrag 1256581)
Naja das was ich geschrieben habe ist ja mit Goto

Nö, ich meine Beitrag #32 in diesem Thread, was dein eigener ist. Da hast du doch bereits 4 verschachtelte for-Schleifen drin.

Ja, aber das hat nicht funktioniert - es ist immer zuerst die erste Schleife durchgelaufen, dann die zweite, dann die dritte etc. Ich wollte aber die letzte zuerst laufen lassen, dann die vorletzte 1x + die letzte wieder komplett etc, so wie ich das mit dem Goto lösen konnte.

Zitat:

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?
Eine einfache For-Schleife stellt mich jetzt nicht direkt vor eine Herausforderung, nur z.B. das hier in FOR-Schleifen zu übersetzen:

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 von Pogoner (Beitrag 1256569)
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:

Zitat von Perlsau (Beitrag 1256592)
Offenbar klappt das Betrügen via Code aber auch nicht so recht, was mich nicht wirklich überrascht

Also da es laut deiner Aussage nicht an der fehlenden Lesekompetenz mangelt, muss es wohl am grundlegenden Verständnis meiner Aussagen hapern...

Dalai 22. Apr 2014 22:23

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

Zitat von Pogoner (Beitrag 1256593)
Ja, aber das hat nicht funktioniert - es ist immer zuerst die erste Schleife durchgelaufen, dann die zweite, dann die dritte etc. Ich wollte aber die letzte zuerst laufen lassen, dann die vorletzte 1x + die letzte wieder komplett etc, so wie ich das mit dem Goto lösen konnte.

Öhm, na dann bau sie doch andersrum auf. Code macht immer genau das, was du geschrieben hast, nicht das, was du dir denkst (manchmal besteht ein Unterschied zwischen Erwartung/Theorie und Realität). Ich seh aber nicht, wo das Problem liegt. Wenn die Reihenfolge der Schleifen nicht passt, dann dreht man sie rum. I4 außen, dann I3, dann I2 und zuletzt I in der innersten Schleife. Genau wie du dein Goto erstellt hast.

Zitat:

Eine einfache For-Schleife stellt mich jetzt nicht direkt vor eine Herausforderung
Du kannst das Beispiel gerne komplizierter machen, z.B. indem du mehrere Schleifen verschachtelst. Aber es ging mir in erster Linie bei dem kleinen Beispiel darum, zu zeigen, dass bei einer for-Schleife keine explizite Zuweisung der Laufvariable stattfindet, sondern das eben durch die Syntax und den Compiler passiert. Schau dir mal die Erklärungen und vor allem die Beispiele in der Delphi-Doku an.

Zitat:

nur z.B. das hier in FOR-Schleifen zu übersetzen:
Siehe oben: Schleifen vertauschen.

MfG Dalai

stahli 22. Apr 2014 22:25

AW: Große String-Liste out of Memory - Hilfe?
 
Nur mal zum Verständnis ein Beispiel für Rekursion:

Delphi-Quellcode:
  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;
Eine Funktion ruft sich bei Rekursion selbst wieder auf.
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.

Popov 22. Apr 2014 22:30

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:
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;
Die
Delphi-Quellcode:
Goto NichtRekursiv ;
ist sehr gefährlich. Du baust hier eine Endlosschleife in dein Programm rein. Zwar gibt es das
Delphi-Quellcode:
Goto DasEnde ;
als Ausgang, das kann man aber eleganter mit repeat lösen (meiner Meinung nach).

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;

himitsu 23. Apr 2014 01:22

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

Delphi-Quellcode:
//zum Test

Die anderen Variablen sollte man vielleicht auch initialisieren, aber darauf würde der Compiler eh hinweisen.

Dejan Vu 23. Apr 2014 08:01

AW: Große String-Liste out of Memory - Hilfe?
 
Das hier
Delphi-Quellcode:
 
...

  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;
geht auch so:
Delphi-Quellcode:
  for i=0 to WC.ControlCount -1 do
     if WC.Controls[I] is TWinControl then
        SubOdInfo(TWinControl(WC.Controls[I]), ExcludeWC, CtrlOd, Deep);
Und dieser Code hier:
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;
Lässt sich doch einfach so schreiben:
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
          begin
            I := I + 1;
            if i = 27 then
            goto DasEnde;
          end
    end;

DasEnde:
   showmessage ('Ende');
end;
Aber Sinn ergibt das nicht, vor allen Dingen nicht die innerste Schleife. Ich glaube, hier sind einfach 4 verschachtelte For-Schleifen erwünscht
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 15:40 Uhr.
Seite 2 von 2     12   

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