"Brute-Force" String Code?

lol hat sich der Fehlerteufel eingeschlichen
streiche
myStr.replay()

setze
myStr.replace()

und diese Funktion ersetzt Char Vorkommen parameter 1 in dem String mit Char parameter 2

charAt(int index) gibt dir char an der Position des indexes zurück
 
nachdem ich holyflys funktion ned so ganz geschnallt habe (hab das gefühl das funzt ned? :( )
hab ich mal wieder selber drangesetzt weil ich ne idee hatte...
Code:
using System;

class MainClass
{


static void Main()
{

string myStr = "";
int max_str_length = 4; //maximum länge des Strings
int actual_str_length = 1; // aktuelle position
int max_var_length = 27; //anzahl an chars in myChars Array
int anzahl_versuche = 0; // anzahl vereits versuchter Kombinationen
double anzahl_moeglichkeiten = 0;
int[] positions = new int[max_str_length];
string letzte_check = "nein";
string neue_ding = "nein";
string double_check;
string[] myChars = new string[27];
myChars[0] = "";
myChars[1] = "a";
myChars[2] = "b";
myChars[3] = "c";
myChars[4] = "d";
myChars[5] = "e";
myChars[6] = "f";
myChars[7] = "g";
myChars[8] = "h";
myChars[9] = "i";
myChars[10] = "j";
myChars[11] = "k";
myChars[12] = "l";
myChars[13] = "m";
myChars[14] = "n";
myChars[15] = "o";
myChars[16] = "p";
myChars[17] = "q";
myChars[18] = "r";
myChars[19] = "s";
myChars[20] = "t";
myChars[21] = "u";
myChars[22] = "v";
myChars[23] = "w";
myChars[24] = "x";
myChars[25] = "y";
myChars[26] = "z";

try
{
// positionen zuweisen 0 = "" | 1 = "a" | 2 = "b" | etc...
for(int pos_i = 0;pos_i < max_str_length;++pos_i)
{
positions[pos_i]=0;
}


//möglichkeiten Berechnung
for(double k = 1;k<=max_str_length;k++)
{
double temp_length = max_var_length-1;
anzahl_moeglichkeiten += Math.Pow(temp_length,k);



}// for(int k = 1;k<=max_str_length;k++) ENDE


Console.WriteLine("Maximum Anzahl Moeglichkeiten:"+anzahl_moeglichkeiten);



for (int b = 0;b<anzahl_moeglichkeiten;++b)
{
letzte_check = "nein";
neue_ding = "nein";
myStr = "";
for(int zu_t = 0;zu_t < max_str_length;zu_t++)
{
myStr = myStr + myChars[positions[zu_t]];


}// for(int zu_t = 0;zu_t < max_str_length;zu_t++) ENDE

anzahl_versuche++;
Console.WriteLine("String: "+myStr);


for(int pos_i = max_str_length-1;pos_i > -1;--pos_i) //geht das positions Array durch
{

if(positions[pos_i]>=26)
{

	if(pos_i>0)
	{
	positions[pos_i] = 1;
	positions[pos_i-1]++;
	pos_i = max_str_length-1;
	Console.WriteLine("oberes if Ding ausgeloest." + pos_i);
 	Console.WriteLine("______________________________________");
	Console.WriteLine("Positionen: 0: "+positions[0]+" | 1: "+positions[1]+" | 2: "+positions[2]);
 	Console.WriteLine("______________________________________");
// 	continue;

	}// if(pos_i>0) ENDE
	
	
	if(positions[pos_i]>=26 && pos_i == 0)
	{
   	positions[pos_i] = 1;
   	for(int pos_i2 = max_str_length-1;pos_i2 > -1;--pos_i2)
   	{
	
	   	if(positions[pos_i2] == 0 && positions[pos_i2-1] > 0 && neue_ding =="nein")
	   	{
	   	positions[pos_i2]++;
	   	neue_ding = "gemacht";
	   	}// if(positions[pos_i2] == 0 && positions[pos_i2-1] > 0) ENDE
   	
   	
   	
   	}//for(int pos_i2 = max_str_length-1;pos_i2 > -1;--pos_i2) ENDE
   	
//	letzte_check = "next";
//	pos_i = max_str_length-1;
//	Console.WriteLine("if ding mit continue wurde ausgeloest");
 //	Console.WriteLine("______________________________________");
//	Console.WriteLine("Positionen: 0: "+positions[0]+" | 1: "+positions[1]+" | 2: "+positions[2]);
// 	Console.WriteLine("______________________________________");
//	continue;
	}// if(positions[pos_i+1]>=26 || positions[pos_i+1] == 0) ENDE	
	




}// if(positions[pos_i]>=26) ENDE


if(pos_i > 0)
{
//if(positions[pos_i] == 0 && positions[pos_i-1] > 0 && letzte_check == "next")
///{
//positions[pos_i]++;
// 	Console.WriteLine("______________________________________");
// 	Console.WriteLine("___________ hier geaddet __________");
// 	Console.WriteLine("______________________________________");
//}// if(positions[pos_i] == 0 && positions[pos_i-1] > 0 && letzte_check == "next") ENDE
}// if(pos_i > 0)) ENDE
else
{// if(pos_i > 0) ELSE


if(positions[pos_i] == 0)
{
positions[pos_i]=1;
}// if(positions[pos_i] == 0)ENDE
}// else von if(pos_i > 0) ENDE

if(positions[pos_i] > 0 && positions[pos_i] < 26 && letzte_check == "nein")
{
letzte_check = "ja";
positions[pos_i]++;
}// if(positions[pos_i] > 0 && positions[pos_i] < 26) ENDE



}// for(int pos_i = 0;pos_i < max_str_length;++pos_i) ENDE //geht das positions Array durch ENDE

//Console.WriteLine("Positionen: 0: "+positions[0]+" | 1: "+positions[1]+" | 2: "+positions[2]);



}//for (int b = 0;b<anzahl_moeglichkeiten;++b) ENDE















}//try ENDE
catch (Exception e)
{
Console.WriteLine("\nException:"
				+ "\n Meldung: "+e.Message
				+ "\n TargetSite: "+e.TargetSite
				+ "\n StackTrace: "+e.StackTrace);

}//catch (Exception e) ENDE
Console.WriteLine("Anzahl Versuche: "+anzahl_versuche);

}// static void Main() ENDE

}//MainClass ENDE
wie immer chatoisch und mit meinen ganz eigenen methoden... is direkt ausm entwurf...
könnts ja mal ausführen funzt eigentlich bis auf das bei der möglichkeiten berechnung zu früh aufhört :( (bei 3 max_str_length gings....)
danke für hilfe :)
 
hilf dir selbst sonst hilft dir keiner :p scheint jedenfalls hier so zu sein oder /me is einfach zu blöd :D
hab mal am morgen gecoded und sieh da nach kurzem debug geht jetzt mein code perfekt ;-)
Wer Fragen hat kann sie ja posten :p (der code von vorher hat das gleiche Schema aber is ned ganz funktionstüchtig...)
und weiter gehts zu den socketspielereien :D *hrrr*
ciao bade
 
Original geschrieben von Badmaster
hilf dir selbst sonst hilft dir keiner :p scheint jedenfalls hier so zu sein oder /me is einfach zu blöd :D
hab mal am morgen gecoded und sieh da nach kurzem debug geht jetzt mein code perfekt ;-)

Und wie wir dir geholfen haben.
Du hast dich durch unser ignorieren dazu durchringen können das selber hinzubiegen.
Dabei lernt mann am meisten.

Zudem haben viele (mich eingeschlossen) keine Lust & Zeit sich 50 Zeilen Code anzuschauen.
 
hehe
danke für euer ignorieren :p (hätte ja sein können, dass einer das konzept eines solchen algorithmusses kennt und hätte mir dann gleich zu dem schema raten können ;))
btw chris, du weisst nicht zufällig ob es mit c# möglich ist wirklich einzelne tcp/udp packets zu senden und ned einfach per tcplistener oder tcpclient irgend welche vorgefertigten ms packets zu benutzen?
thnx in advance :)
Gruss Badmaster
 
msdn ist hier dein Freund.
System.Net.Socket.UdpClient
Code:
// This constructor arbitrarily assigns the local port number.
UdpClient udpClient = new UdpClient();
    try{
         udpClient.Connect("www.contoso.com", 11000);

         // Sends a message to the host to which you have connected.
         Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there?");
      
         udpClient.Send(sendBytes, sendBytes.Length);

         // Sends a message to a different host using optional hostname and port parameters.
         UdpClient udpClientB = new UdpClient();
         udpClientB.Send(sendBytes, sendBytes.Length, "AlternateHostMachineName", 11000);

         //IPEndPoint object will allow us to read datagrams sent from any source.
         IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);

         // Blocks until a message returns on this socket from a remote host.
         Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint); 
         string returnData = Encoding.ASCII.GetString(receiveBytes);
   
         // Uses the IPEndPoint object to determine which of these two hosts responded.
         Console.WriteLine("This is the message you received " +
                                      returnData.ToString());
         Console.WriteLine("This message was sent from " +
                                     RemoteIpEndPoint.Address.ToString() +
                                     " on their port number " +
                                     RemoteIpEndPoint.Port.ToString());

          udpClient.Close();
          udpClientB.Close();
          
          }  
       catch (Exception e ) {
                  Console.WriteLine(e.ToString());
        }
 
Zurück