Bug in skript. Kann mir wer debuggen?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
alpha
anzeigen
aussehen
beitrag
buchstabe
definition
dezimalsystem
fragen
funktion
grad
klein buchstaben
kleinen fehler
sen
skript
verstehe
-
Also, (ich glaube) Heavyraptor (oder so) hat mri den Skript geschrieben (so ?hnlich).
Er sollte buchstaben so anzeigen:
A
B
C
D
E
F
G
..
Z
AA
BB
jetzt habe ich versucht ihn zu erweitern, aber leider funst er jetzt nichtmehr richtig, und ich finde den Bug einfach nicht.
Er schreibt jetzt so:
A
b
c
d
..
Kann wer ihm kurz anschauen und mir sagen was da nicht stimmt?
<?php
function intstr($int,$chrs = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890")
{
$chrslen = strlen($chrs);
$str = "";
while ($int > 0)
{
$str = $chrs[$int % $chrslen].$str;
$int = floor($int / $chrslen);
}
return $str;
}
function strint($str,$chrs = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890")
{
$chrslen = strlen($chrs);
$str = strtolower($str);
$strlen = strlen($str);
$int = 0;
for ($i = 0; $i < $strlen; $i++)
{
$int += strpos($chrs,$str[$i]) * pow($chrslen,$strlen - $i - 1);
}
return $int;
}
?>
<?php
include 'config.php';
$str = "A";
while(1)
{
echo $str."<br>";
$int = strint($str);
$int += 1;
$str = intstr($int);
if($str == "Z") { die(); }
}
?> -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
So wie ichs entnehmen konnte sollen nur Gro?buchstaben angezeigt werden, oder? Die Frage wof?r das Script ist lass ich mal weg ;)
Es k?nnte doch evtl. so gehen, dass du einfach die klein-Buchstaben aus der Definition rausnimmst, also dann so in etwa:
function intstr($int,$chrs = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890")
und
function strint($str,$chrs = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890")
Das d?rfte doch eigentlich deine Frage beantworten, oder (denk ich mal, w?rd ich mal so sagen ^^) -
Aso, ne, er schreibt beim bearbeiten nur kleinbuchstaben ._."
Klar, ich k?nnte es auch getrennt machen, aber dann k?nnte nicht so ne Kombo entstehen: Ad0 oder so. (K?nnte mit den die() nat?rlich so oder so nicht)
?: Grad nur mit Alpha und Numeric getestet, also alle loweralphas deletet, jetzt schreibt er nur noch
A
B
B
B
B
B
B
..
B
B
B
B
Beitrag ge?ndert am 20.06.2006 22:08 von kai008 -
Hi,
Naja, bei mir funktioniert die funktion richtig (ich hab sie ja auch geschrieben ).
Jedoch hab ich noch einen kleinen Fehler gefunden.
So sollte die Funktion intstr() aussehen, damit sie ganz richtig l?uf:
function intstr($int,$chrs = "abcdefghijklmnopqrstuvwxyz") { $chrslen = strlen($chrs); $str = ""; if ($int === 0) return $chrs[0]; while ($int > 0) { $str = $chrs[$int % $chrslen] . $str; $int = floor($int / $chrslen); } return $str; }
Ich verstehe jedoch nicht folgendes:
A
B
C
D
E
F
G
..
Z
AA
BB
Nach dem Z komm AA, das ist ok, aber danach kommt doch logischer weise AB und nicht BB, oder?
mfg,
hr -
Nach dem Z komm AA, das ist ok, aber danach kommt doch logischer weise AB und nicht BB, oder?
sollte eigentlich schon ja...
was daf?r falsch ist, wie? ich allerdings auch nicht... -
Nat?rlich sollte AB/AC/AD und so weiter danach kommen. War nur m?de
Hab dass File jetzt ver?ndert, aber es bleibt trotzdem gleich ._." -
Hi,
eigentlich k?nnte man das ganze ganz einfach erkl?ren, denn meine Funktion funktioniert schon richtig. Das Ganze ist einfach, dass Problem ist nur, dass die funktion intstr() die gegebene Zahl als Dezimalsystem umwandelt.
Desegen kommt nach den einstelligen Ergebnissen b und nicht a, da a ja eigentlich 0 ist und b ist 1.
Das gleiche ist ja z.B. beim Hexadezimalsystem:
Es f?ngt mit 0 an bis 9, dann bis f und dann kommt 10 und nicht 00, denn 00 w?re logischerweise 0 beim umwandeln.
Um die gewollte Reinfolge zu erstellen (a,b,c [...] aa,ab [...]), m?sste man eine andere Funktion erstellen, die auf einer anderen Weise basiert, denn mit intstr() bzw. strint() ist dieses Problem leider nicht zu l?sen.
mfg,
hr -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage