Autor Beitrag
oOXTCOo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows XP Prof. 3
Delphi 7
BeitragVerfasst: Fr 28.08.09 01:36 
hallo!


könnt ihr mir kurz helfen?

mit folegndem code:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
function bruteforce(astring: string; substr: string; startlen: integer; endlen: integer): LongInt;
var
  i, n, x: integer;
  npw: string;
  hlplst  : TStringList; //Die linke Spalte
  cluster : TStringList; //Der Mittelbereich
  results : TStringList; //Fertige Kombinationen
  label step1;
begin

  hlplst  := TStringList.Create; //Die linke Spalte
  cluster := TStringList.Create; //Der Mittelbereich
  results := TStringList.Create; //Fertige Kombinationen

  hlplst.Clear;
  cluster.Clear;
  results.Clear;

  for x := 1 to length(substr)  do begin 
    hlplst.add(substr[x]);
  end;

  step1:
  for i := 0 to hlplst.Count - 1 do begin
   for n := 1 to length(astring) do begin  
    npw := hlplst.strings[i]+astring[n];
    cluster.add(npw);
  if form1.checkbox1.checked then  form1.memo1.lines.add(npw); // habe ich eingefügt, damit ich die ausgabe sehen kann!
   end;
  end;

  hlplst.clear;
  hlplst.addstrings(cluster);
  cluster.clear;


  if length(npw) + 1 <= endlen then goto step1;
  hlplst.Clear;
  result := 0;

end;



augerufen wird die prozedur so:

ausblenden Delphi-Quelltext
1:
bruteforce('1234567890' , '1234567890' , 1515);					




bruteforce('1234567890' , '1234567890' , 15, 15); <- 15 ist minimum länge und , 15 ist maximale länge


die maximale länge funktioniert, aber die minimum länge nicht, die prozedur beginnt immer mit zwei zeichen, sie soll aber mit minimum 15 und maximum 15 starten.
da ich die passwort länge kenne, wäre es unnötig mit zwei stellen zu beginnen.



danke!

Moderiert von user profile iconGausi: Titel korrigiert.
Sprint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 849



BeitragVerfasst: Fr 28.08.09 02:30 
Naj, vielleicht bin ich ja blind. Aber kommen die Parameter startlen und endlen denn überhaupt in deinem Quelltext vor?

_________________
Ciao, Sprint.
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Fr 28.08.09 09:01 
Typisches Beispiel von ich Google ein wenig und Kopiere den Code. Verstehe aber nicht mal wie er funktioniert. :nut:
Davon abgesehn ist ein Bruteforcer einzig dafür da Passwörter herauszufinden somit nicht Erlaubt.
Und meines wissens werden solche Themen auch schnell entschärft.
Hobby-Programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 238
Erhaltene Danke: 4

Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro, Turbo, XE SE
BeitragVerfasst: Fr 28.08.09 10:05 
Warum sollte es net erlaubt sein den Algo hier zu erfragen oder um Hilfe zu bitten?
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Fr 28.08.09 10:24 
Ein Algo ist generell auch erstmal nichts schlimmes.
oOXTCOo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows XP Prof. 3
Delphi 7
BeitragVerfasst: Sa 29.08.09 00:52 
user profile iconthepaine91 hat folgendes geschrieben Zum zitierten Posting springen:
Typisches Beispiel von ich Google ein wenig und Kopiere den Code. Verstehe aber nicht mal wie er funktioniert. :nut:
Davon abgesehn ist ein Bruteforcer einzig dafür da Passwörter herauszufinden somit nicht Erlaubt.
Und meines wissens werden solche Themen auch schnell entschärft.



du scherzbold, wenn ich ihn selbst geschrieben hätte WÜRDE ICH IHN VERSTEHEN!!!
UND WÜRDE ICH IHN VERSTEHEN, WÜRDE ICH HIER NCHT NACHFRAGEN!!!

ausserdem habe ich diese zeile eingefügt:
if form1.checkbox1.checked then form1.memo1.lines.add(npw); // habe ich eingefügt, damit ich die ausgabe sehen kann!

was dir schon sagen sollte das der code nicht von mir ist, sondern nur diese zeile!




ps:
und ja, du darfst die grossbuchstaben als SCHREIEN aufnehmen!


Zuletzt bearbeitet von oOXTCOo am Sa 29.08.09 01:02, insgesamt 2-mal bearbeitet
oOXTCOo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows XP Prof. 3
Delphi 7
BeitragVerfasst: Sa 29.08.09 01:00 
...


Zuletzt bearbeitet von oOXTCOo am Sa 29.08.09 01:01, insgesamt 1-mal bearbeitet
oOXTCOo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows XP Prof. 3
Delphi 7
BeitragVerfasst: Sa 29.08.09 01:01 
.................
Boldar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Sa 29.08.09 01:15 
Fängt das jetzt auch wieder an? Ich dachte, diese Phase mit Usern, die alle Beiträge in Punkte editieren, hätten wir hinter uns.

user profile iconoOXTCOo hat folgendes geschrieben Zum zitierten Posting springen:

du scherzbold, wenn ich ihn selbst geschrieben hätte WÜRDE ICH IHN VERSTEHEN!!!
UND WÜRDE ICH IHN VERSTEHEN, WÜRDE ICH HIER NCHT NACHFRAGEN!!!


Dann mach halt erstmal was "einfaches", mit dem du zurecht kommst, oder lies soviele Tutorials (Dazu auch das hier!!), bis du den Code oben verstehst.
Das ist auch ein Ziel, was man durchaus erreichen kann.
Denn es bringt nichts, wenn man totalen Anfängern fertige Programme für Copy'n'Paste liefert.Lerneffekt = 0!
mfg Boldar
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Sa 29.08.09 01:36 
Erst Lesen dann Denken!
thepaine91 hat folgendes geschrieben:

Typisches Beispiel von ich Google ein wenig und Kopiere den Code. Verstehe aber nicht mal wie er funktioniert. :nut:

So wie kann man so geistig beschränkt sein das man das Zitat auch noch postet und trotzdem meint ich hätte gesagt der Code kommt von dir!

Damit sag ich eben das man gleich erkennt das er nicht von dir ist!

Und ich werde generell keinem Scriptkiddie helfen einen Bruteforcer zu schreiben.

...
Dunkel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 682

Mac OS X Snow Leopard
Xcode 3.1
BeitragVerfasst: Sa 29.08.09 02:04 
[OT]
user profile iconthepaine91 hat folgendes geschrieben Zum zitierten Posting springen:

So, wie kann man so geistig beschränkt sein, dass man das Zitat auch noch postet und trotzdem meint, ich hätte gesagt, der Code kommt von dir!
{...}

Keine Sorge, die geBILDete Generation ist nun mal so... :wink:
[/OT]

_________________
Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Sa 29.08.09 03:11 
user profile iconthepaine91 hat folgendes geschrieben Zum zitierten Posting springen:
Davon abgesehn ist ein Bruteforcer einzig dafür da Passwörter herauszufinden

Falsch.

Wikipedia hat folgendes geschrieben:
Die Brute-Force-Methode [...], ist eine Lösungsmethode für Probleme aus den Bereichen Informatik, Kryptologie und Spieltheorie, die auf dem Ausprobieren aller (oder zumindest vieler) möglicher Fälle beruht.

Wikipedia hat folgendes geschrieben:
In der Spieltheorie, beispielsweise beim Computer-Schach, ist die Brute-Force-Methode eine Strategie, in der der Variantenbaum bis zu einer gewissen Tiefe vollständig durchsucht und analysiert wird. Eine Bewertungsfunktion für jede der dabei auftretenden Stellungen dient dabei zur Entscheidungsfindung für den besten Zug.


@oOXTCOo: Du solltest dich wirklich mit etwas einfacherem beschäftigen. So ein Permutations-Algorithmus ist nicht ganz einfach, vor allem wird in dem Source, den du gefunden hast, goto eingesetzt. Dies macht ihn gerade für Anfänger - aber auch für Fortgeschrittene - schwer zu verstehen. Suche also entweder nach einem besseren Algorithmus und probiere den dann aus, oder versuchs mal mit ein paar kleineren Projekten und Tutorials, wie wir hier in der Delphi-Library haben.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Sa 29.08.09 09:32 
user profile iconthepaine91 hat folgendes geschrieben Zum zitierten Posting springen:
Erst Lesen dann Denken!...So wie kann man so geistig beschränkt sein ...

Dein Niveau ist ein Denkmal deines Verstandes.

user profile iconoOXTCOo hat Dir keinen Anlaß gegeben, dich in dieser Form ihm gegenüber so zu äußern.

Übrigens ist der gezeigte 'Algorithmus' etwas derart schlecht Programmiertes, das ich es partout nicht analysieren *will*.

Worum geht es Dir denn genau? Was möchtest Du programmieren?

Übrigens wäre ein Passwort-Rat-O-Mat mit einem Brute-Force-Algorithmus durchaus geeignet, die Grundlagen der Programmierung aufzuzeigen.
Er zeigt in kompakter Weise Schleifen, NP-komplette Probleme und den für diese Form der Aufgaben bisher optimalsten Algorithmus. Weiterhin wird man dann auch schnell verstehen, *warum* die Tipps für sichere Passwörter eben so sind, wie sie sind (Sonderzeichen, mehr als 8 Zeichen usw).

_________________
Na denn, dann. Bis dann, denn.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Sa 29.08.09 09:32 
user profile iconthepaine91 hat folgendes geschrieben Zum zitierten Posting springen:
Davon abgesehn ist ein Bruteforcer einzig dafür da Passwörter herauszufinden somit nicht Erlaubt.
Und meines wissens werden solche Themen auch schnell entschärft.


Das einzige, was hier ganz schnell entschärft werden muss, ist der Ton in diesem Topic von mindestens zwei der Beteiligten. Wir gehen in diesem Forum höflich miteinander um, schreien uns nicht gegenseitig an und beleidigen niemanden.

Bitte beachtet das. :mahn:

Zum Thema Bruteforce: Auch wenn der Begriff "Passwort" vorkommt, heißt das noch nicht, dass hier was illegales passieren soll.

Zum Thema: Was soll dein Programm den überhaupt machen? Ich blicke den Code im ersten Topic auch nicht so ganz, was nicht nur an dem goto liegt. Vielleicht lässt sich dein Problem besser lösen, wenn du erstmal beschreibst, was du machen willst.

_________________
We are, we were and will not be.
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Sa 29.08.09 12:48 
*Sich entschuldigt* :flehan: . Das Anschreien für etwas das ich nciht gesagt hab hat mich leicht aufgeregt. Bei mir geht das leider manchmal etwas zu schnell.

Zum Thema Bruteforce soweit richtig nur hat er selbst ganz am Anfang geschrieben das es für ein Passwort ist. Daher bezog ich mich auf das rausfinden von Passwörtern.
oOXTCOo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows XP Prof. 3
Delphi 7
BeitragVerfasst: Sa 29.08.09 22:35 
es ist kein richtiges passwort das "genkackt" werden soll.
er ist eine art prüfsumme im permanent memory eines handys.

wenn diese prüfsumme nicht stimmt startet es nicht mehr komplett und man kann es nicht mehr verwenden. ich möchte versuchen per bruteforce diese key wieder herzustellen ohne teure neue berechnete pm daten zu bestellen.

ich habe das ganze schon umgeschrieben damit der bruteforce per hex geschieht wie ich es brauche, es funktioniert auch mit meinem "test key" allerdings braucht das noch viel viel länger als es brauchen würde, da der algo eben immer bei zwei stellen beginnt.

soweit ich informiert bin sollte das auch in deutschland nicht illegal sein, ausserdem wird das nur auf meinem eigenem gerät ausgeführt.

sorry fürs anschreien, aber du hast mich beschuldigt einfach sachen von google zu kopieren und dann weil ich mich nicht auskenne noch die frechheit besietze um unterstützung zu fragen.
ich habe natürlich vorher schon einiges versucht um ohne hilfe auszukommen, auch habe ich schon andere algos getestet und dieser hier funktioniert eben für meine bedürfnisse genau richitg (wenn er eben mit mehr stellen beginnen würde).
ich habe schon einen anderen algo am laufen (schon vor dem) aber als ich diesen gefunden habe und getestet habe, hatte er einfach besser gepasst und ich würde lieber diese technik verwenden.

meine aufregung bezog sich auf diesen text:
user profile iconthepaine91 hat folgendes geschrieben Zum zitierten Posting springen:
Typisches Beispiel von ich Google ein wenig und Kopiere den Code. Verstehe aber nicht mal wie er funktioniert. :nut:

ich frage ja extra nach, damit ich ihn verstehen kann. ich würde sonst doch keine hilfe brauchen. ich habe auch einen algo selbst gemacht (kann den source auch posten), aber ich bekomme das nicht so hin wie es mit diesem source läuft. mein source durchläuft für jede stelle eine schleife, wenn die durch ist gehst zur nächsten schleife die wieder alles durchlaufen lässt bis zur nächsten usw... wenn dann die schleifen alle durch sind beginnt wieder alles von vorne aber mit dem nächsten zeichen. jedoch ist der code sehr sehr lang und langsam und es hängt alles durch jede menge exaptions. ausserdem kann man bei dem im internet gefundenen code die zu bruteforcenden zeichen eingeben, bei meinem müsste ich immer den source ändern (klar das kann man leicht ändern, aber ich hätte lieber diesen algo).

user profile iconthepaine91 hat folgendes geschrieben Zum zitierten Posting springen:

So wie kann man so geistig beschränkt sein das man das Zitat auch noch postet und trotzdem meint ich hätte gesagt der Code kommt von dir!

Damit sag ich eben das man gleich erkennt das er nicht von dir ist!

und was habe ich dazu geschrieben? genau das selbe!, bitte lese dir meinen post nochmal richtig durch.
mit meiner post sollte gemeint sein, das es schon klar ist das der source nicht von mir ist (wie du eben geschrieben hast), denn wäre er von mir würde ich ihn ja verstehen... alles klar?



und ich kenne mich mittlerweilen mit delphi sehr gut aus, doch es kommen immer wieder neue sachen hinzu (mit absicht) mit denen ich vorher nicht gearbeitet habe (weil ich auch nicht wusste das es goto überhaupt in delphi gibt), und deshalb nicht ganz durchblicke.


die posts mit den ....... (punkten) können bitte gelöscht werden, ich wollte meinen beitrag editieren und habe als versehen zwei mal auf den "quote" button statt auf den "edit" button geklickt.



soweit ich den goto befehl verstehe (aus c64 zeiten) spring der code immer wieder zu goto label.step1 solange
die länge von npw +1 nicht kleiner oder gleich der endlänge ist. und ich denke auch das es zu 100% korrekt ist. nur eine andere art von schleife...
und als ich den source gefunden habe, habe ich mich gefreut das es goto in delphi gibt und das ich das schon mehrmals gebraucht hätte, aber nun in meinen zukünftigen projekten verwenden kann.



mfg.
hari

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

user profile iconDunkel hat folgendes geschrieben Zum zitierten Posting springen:
[OT]
user profile iconthepaine91 hat folgendes geschrieben Zum zitierten Posting springen:

So, wie kann man so geistig beschränkt sein, dass man das Zitat auch noch postet und trotzdem meint, ich hätte gesagt, der Code kommt von dir!
{...}

Keine Sorge, die geBILDete Generation ist nun mal so... :wink:
[/OT]


diesen beitrag betrachte ich auch als frechheit und spiegelt die freundlichkeit und hilfbreitschaft diesen forums wieder (oder nein sorry, besser die einer "weniger" user die denken sie seien etwas besseres da sie eventuell informatik in der schule lernen durften oder mehr erfahrung haben da sie schon länger damit arbeiten als einige andere, (oder denken mehr erfahrung zu haben)).

auch für dich gilt, lese DU dir besser mal meinen post durch wie er gemeint wurde! vieleicht verstehst du es dann auch eines tages wie ich es meinte und nicht wie du es aufgefasst hast!

ich wiederhole das wichtigste hier:

JA KLAR IST ER AUS DEM INTERNET KOPIERT DENN: wenn ich ihn selbst geschrieben hätte WÜRDE ICH IHN VERSTEHEN!!!
UND WÜRDE ICH IHN VERSTEHEN, WÜRDE ICH HIER NCHT NACHFRAGEN!!!


das fettgedruckte wurde von mir zu besseren verständlichkeit (speziell für euch beide) hinzugefügt!
Hobby-Programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 238
Erhaltene Danke: 4

Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro, Turbo, XE SE
BeitragVerfasst: So 30.08.09 02:25 
Zitat:
solange
die länge von npw +1 nicht kleiner oder gleich der endlänge ist
Ist doch schonmal der Anfang. Hast Du versucht die Länge von npw, durch voranstellen von Nullen, auf die gewünschte Startlänge zu setzen?
SvenAbeln
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 334
Erhaltene Danke: 3



BeitragVerfasst: So 30.08.09 10:59 
Hast du dir mal überlegt was dein toller Algorithmus macht?
Da scheint die Hälfte zu fehlen:
  • Es gibt eine Liste "results" - die wird erzeugt aber nicht benutzt
  • Es wird viel gerechnet, aber keine Ergebnisse raus gegeben oder gespeichert.
  • Es gibt einen Parameter "startlen" - der nie benutzt wird
  • Es werden einige Objekte erzeugt aber nie freigegeben.

Bei deiner Ausgabe form1.memo1.lines.add(npw); in Zeile 28 bekommst du natürlich auch Passwörter mit den Längen 2,3... usw, das sind ja auch die ganzen Zwischenergebnisse des Algorithmus. Hier werden die Permutationen berechnet indem immer ein neues Zeichen an die bestehenden Strings angehängt wird.
Wie schon oben geschrieben wird das Endergebnis nirgendwo gespeichert, alles was berechnet wurde wird in Zeile 38 wieder gelöscht.

Aber dieser Ansatz hat noch ein anderes Problem. Hast du mal überlegt was du da an Speicher belegen willst?
Du versuchst "alle" Passwörter aus den Zeichen 0..9 und der Länge 15 in eine TStringList zu speichern.
ausblenden Quelltext
1:
2:
3:
Das sind 10^15 Passwörter                  =  1.000.000.000.000.000
TStringList.Count ist Integer, also maximal =         2.147.483.648
Eine TStringlist erlaubt aber nur 1/16 davon =          13.4217.728

Aber egal wo du die Passwörter speicherst:
jedes Passwort belegt 15 Byte, das macht 15.000.000.000.000.000 Byte = 15 Peta Byte
oOXTCOo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows XP Prof. 3
Delphi 7
BeitragVerfasst: So 30.08.09 15:04 
user profile iconSvenAbeln hat folgendes geschrieben Zum zitierten Posting springen:
Hast du dir mal überlegt was dein toller Algorithmus macht?
Da scheint die Hälfte zu fehlen:
  • Es gibt eine Liste "results" - die wird erzeugt aber nicht benutzt
  • Es wird viel gerechnet, aber keine Ergebnisse raus gegeben oder gespeichert.
  • Es gibt einen Parameter "startlen" - der nie benutzt wird
  • Es werden einige Objekte erzeugt aber nie freigegeben.

Bei deiner Ausgabe form1.memo1.lines.add(npw); in Zeile 28 bekommst du natürlich auch Passwörter mit den Längen 2,3... usw, das sind ja auch die ganzen Zwischenergebnisse des Algorithmus. Hier werden die Permutationen berechnet indem immer ein neues Zeichen an die bestehenden Strings angehängt wird.
Wie schon oben geschrieben wird das Endergebnis nirgendwo gespeichert, alles was berechnet wurde wird in Zeile 38 wieder gelöscht.

Aber dieser Ansatz hat noch ein anderes Problem. Hast du mal überlegt was du da an Speicher belegen willst?
Du versuchst "alle" Passwörter aus den Zeichen 0..9 und der Länge 15 in eine TStringList zu speichern.
ausblenden Quelltext
1:
2:
3:
Das sind 10^15 Passwörter                  =  1.000.000.000.000.000
TStringList.Count ist Integer, also maximal =         2.147.483.648
Eine TStringlist erlaubt aber nur 1/16 davon =          13.4217.728

Aber egal wo du die Passwörter speicherst:
jedes Passwort belegt 15 Byte, das macht 15.000.000.000.000.000 Byte = 15 Peta Byte



ja, ich habe den code schon abgeändert.
1.) damit er alles in hex ausgibt
2.) wird geprüft ob der code gefunden wurde

jedoch habe ich nur den original code hier geposted, damit keine verwirrung zustande kommt.

die passwörter sollten geprüft und gleich wieder vom speicher gelöscht werden.

ich habe mir jetzt einen eigenen algo geschrieben.
das problem ist das von dir erwähnte... ich kann nur bis 10 stellen (integer) und brauche 11.
ich habe wieder auf meine alte methode zurück gegriffen, die nichts anderes macht
als immer 1 dazu zu zählen. diese methode funktioniet wenigstens.

aber wie umgehe ich die größenbeschrenkungen?

ich habe es in meinem source so gelöst das ich es auf zwei integerwerte aufgeteilt habe,
dann läuft das.



user profile iconHobby-Programmierer hat folgendes geschrieben Zum zitierten Posting springen:
Zitat:
solange
die länge von npw +1 nicht kleiner oder gleich der endlänge ist
Ist doch schonmal der Anfang. Hast Du versucht die Länge von npw, durch voranstellen von Nullen, auf die gewünschte Startlänge zu setzen?

ja habe ich als aler erstes gemacht, geht nicht.



danke für die hilfe, ich denke mit meiner methode bekomme ich das scheinbar besser hin als mit diesem algo...
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: So 30.08.09 15:49 
Was Du willst, ist doch gar kein 'BruteForce', sondern einfach nur eine Routine, die dir alle Wörter der Länge X aus einem Alphabet A liefert.
Wenn das Alphabet = {0,1} ist und X=3, soll die Routine nacheinander '000','001','010','011','100','101','110','111' liefern.
Wenn A= {a,b,c} und X=2 lautete das gewünschte Ergebnis eben 'aa','ab','ac','ba','bb','bc','ca','cb','cc';

Diese Funktion liefert den Nachfolger eines Strings nach o.g. Schema:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
Function StringSucc (Const aValue, aDigits : String) : String;
Var
  p,i,l : Integer;

Begin
  i := Length (aValue);
  l := Length (aDigits);
  Result := aValue;
  Repeat
    p := Pos(aValue[i], aDigits);
    if p<l then Begin
      Result[i] := aDigits[p+1];
      Exit;
    End Else Begin
      Result[i] := aDigits[1];
      dec(i);
    End;
  Until i=0;
  Raise EOverflow.Create('Overflow');
End;
...
  StringSucc('000','0123456789'); // liefert '001'
  StringSucc('001','0123456789'); // liefert '002'
  StringSucc('009','0123456789'); // liefert '010'
  StringSucc('999','0123456789'); // liefert eine Overflow exception

_________________
Na denn, dann. Bis dann, denn.