Hali!
Szükségem volt egy ilyen szkriptre, aztán gondoltam bárkinek jól jöhet.
generateRandomString(karakter/* MAX 256 */, bool:kulonleges=false)
{
#define DEBUG 1 // ha azt akarod hogy a végén ne írja ki konzolba, tedd 0-ra.
#define MAX_KARAKTER 81 // Ennyi karaktert tartalmaz maximum a \'karakterek\' változó
new
karakterek[MAX_KARAKTER char * 4] = EOS, // üres tároló létrehozása
i, // ciklus fõ \"irányítója\" ez lesz
/*
k[3]: ezekbe tárolom majd a random értékeket, azért van 3, hogy biztosra menjünk, azért vagyok ilyen elõvigyázatos
mert Pascalban meg kellett hívni a Randomize függvényt a normális használat érdekébem, itt nem tudom hogy mûködik
*/
k[3],
c[256 char], // nem tudom miért, de csak ezzel a segédtárolóval mûködik az strins, majd lennt leírom.
ebbe[256] // ebbe fogom tárolni a legenerált karaktereket
;
if(kulonleges == false)
karakterek = \"qwertzuiopasdfghjklyxcvbnmQWERTZUIOPASDFGHJKLYXCVBNM1234567890\"; // ékezetesek
else
karakterek = \"qwertzuiopõúasdfghjkléáûíyxcvbnmQWERTZUIOPÕÚASDFGHJKLÉÁÛÍYXCVBNMöüóÖÜÓ0123456789\"; //nem ékezetesek
for(i = 0; i < karakter; i++)
{
k[0] = random(3-1)+1; // kicsit megspékeljük a változatosság kedvéért a random értékeket, majd \'k[1]\' és \'k[2]\' változókból választ
k[1] = random((strlen(karakterek)-1)-0)+0; // kiválaszt egy random értéket a karakterek 0 és a függvényben megadott érték(milyen hosszú legyen) közt
k[2] = random((strlen(karakterek)-1)-0)+0; // dettó
c = karakterek[k[k[0]]]; // na itt, ezt nem tudom miért kell, de így mûködik.. ha simán beírom a \'c\' helyére ezt: \'karakterek[k[k[0]]]\' nem megy :|
strins(ebbe, c, i); // mindig hozzáadok az \'ebbe\' változóba egy karaktert, amit frissen generáltam, az \'i\'-edik helyre
}
#if DEBUG != 0
printf(\"asd: %s\", ebbe);
#endif
return ebbe;
}
PASTEBINLegenerál egy 8 karakter hosszú random szöveget.
Használat ékezetek nélkül:
generateRandomString(;
generateRandomString(8, false);
Visszatérési példa: Ahj47JKf
Használat ékezetekkel:
generateRandomString(8, true);
Visszatérési példa: üÕfh1gYl