Seite 1 von 1
Zufälligen Wert Aus Einer Array Auslesen
#1
geschrieben 13. April 2008 - 16:00
hallo,
ich habe ein Material: macs.txt
1. Wie bekomme ich die in eine Array rein ohne jede einzelne Zeilen, es sind 6487, zu bearbeiten.
2. Wenn ich die dann in einer Array hab möchte ich die zufällig auswählen und in die Variable $random schreiben!
Kann mir da jemand helfen?
ich habe ein Material: macs.txt
1. Wie bekomme ich die in eine Array rein ohne jede einzelne Zeilen, es sind 6487, zu bearbeiten.
2. Wenn ich die dann in einer Array hab möchte ich die zufällig auswählen und in die Variable $random schreiben!
Kann mir da jemand helfen?
Anzeige
#2
geschrieben 13. April 2008 - 16:20
Ja, öhm, und wir sprechen von welcher Sprache?
Ansonsten mal allgemein:
1. Z.B. eine hochzählende Schleife mit z.B. i bauen, die jeweils pro Durchgang die $i.te Zeile liest und das Array an Position $i(-1, je nach Sprache) um den gelesenen Wert erweitert.
2. Einfach eine Random-Zahl generieren und diese auf das Array anwenden
Ansonsten mal allgemein:
1. Z.B. eine hochzählende Schleife mit z.B. i bauen, die jeweils pro Durchgang die $i.te Zeile liest und das Array an Position $i(-1, je nach Sprache) um den gelesenen Wert erweitert.
2. Einfach eine Random-Zahl generieren und diese auf das Array anwenden
/fuck you - really, I mean it!
Zu verkaufen:
Xbox, komplett PC (WF Link)
Hardware, Games, Comics und noch mehr Zeug (eBay-KA Link)
Zu verkaufen:
Xbox, komplett PC (WF Link)
Hardware, Games, Comics und noch mehr Zeug (eBay-KA Link)
#3
geschrieben 13. April 2008 - 16:35
Ich nehme mal PHP als Programmiersprache an:
1. file() liest eine Datei komplett in ein Array.
2. array_rand() liefert einen oder mehrere zufällige Einträge eines Arrays als Array.
Bei der Ausgabe kannst du dann trim() benutzen und ggf. auch noch das Komma entfernen. So musst du die Datei nicht bearbeiten.
Gruß,
Stefan
1. file() liest eine Datei komplett in ein Array.
2. array_rand() liefert einen oder mehrere zufällige Einträge eines Arrays als Array.
Bei der Ausgabe kannst du dann trim() benutzen und ggf. auch noch das Komma entfernen. So musst du die Datei nicht bearbeiten.
Gruß,
Stefan
#4
geschrieben 13. April 2008 - 21:20
Oh sorry ich meine PHP!
Also ich habe nun erstmal noch ein wenig an der Array selber herumgebastelt.
Also das Ziel meines Scriptes soll es sein, unter angabe seiner eigenen Mac die letzten 3 "Stellen" per zufall mit meiner array zu kombinieren.
Ich habe auch schon eine Vorstellung. Ich lasse mir per $_POST seine mac eingeben. Jedes Teilstück wird in eine neue $_POST variable kommen. Danach werde ich alle bis auf die letzten 3 VAriablen ausgeben. Anstelle der letzten 3 Variablen stehet dann meine zufällig generierte variable.
Beispielmacadresse:
00-11-D5-65-23-EN
die dick markierten Zahlen sollen per Zufall aus meiner array stammenden Kombinationen kombiniert werden.
Soe sieht meine neue mac.txtaus!
ich wüde gerne die .txt includen. Wie kann ich die denn dann noch al array benutzen?
Also ich habe nun erstmal noch ein wenig an der Array selber herumgebastelt.
Also das Ziel meines Scriptes soll es sein, unter angabe seiner eigenen Mac die letzten 3 "Stellen" per zufall mit meiner array zu kombinieren.
Ich habe auch schon eine Vorstellung. Ich lasse mir per $_POST seine mac eingeben. Jedes Teilstück wird in eine neue $_POST variable kommen. Danach werde ich alle bis auf die letzten 3 VAriablen ausgeben. Anstelle der letzten 3 Variablen stehet dann meine zufällig generierte variable.
Beispielmacadresse:
00-11-D5-65-23-EN
die dick markierten Zahlen sollen per Zufall aus meiner array stammenden Kombinationen kombiniert werden.
Soe sieht meine neue mac.txtaus!
ich wüde gerne die .txt includen. Wie kann ich die denn dann noch al array benutzen?
#5
geschrieben 13. April 2008 - 22:01
Ich bin nun etwa soweit:
Ich stelle mir nun noch ein paar Fragen!
1. Wie kann ich die mac.txt includen, dies aber als array
2. ich hab nun in der .txt alle kommas gelöscht siehe hier ! kann ich den Inhalt nun so als Array nutzen?
3. kann ich das Scruipt noch einfacher oderso machen?
mfg
Toasterfraktion
<form action="mac.php" method="POST">
<p>
<input name="teil1" type="text" id="teil1" value="00" size="2" maxlength="2">-
<input name="teil2" type="text" id="teil2" value="11" size="2" maxlength="2">-
<input name="teil3" type="text" id="teil3" value="D5" size="2" maxlength="2">-
<input name="teil4" type="text" id="teil4" value="65" size="2" maxlength="2">-
<input name="teil5" type="text" id="teil5" value="23" size="2" maxlength="2">-
<input name="teil6" type="text" id="teil6" value="EN" size="2" maxlength="2">
<p>
<input name="submit" type="submit">
</form>
<?php
$teil1 =$_POST['teil1'];
$teil2 =$_POST['teil2'];
$teil3 =$_POST['teil3']; // Brauche ich eigentlich nicht
$teil4 =$_POST['teil4']; // Brauche ich eigentlich nicht
$teil5 =$_POST['teil5']; // Brauche ich eigentlich nicht
/*
$input = array{
include(mac.txt); // kann man das so machen?
};
*/
$teile = "$teil1 $teil2";
$rand_keys = array_rand($input, 10); // was hat es sich mit der der Zahl hinter der Variablen auf sich (das wird num_req sein)
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
echo $input[$rand_keys[2]] . "\n";
echo $input[$rand_keys[3]] . "\n";
echo $input[$rand_keys[4]] . "\n"; // Hier wird noch etwas geändert
echo $input[$rand_keys[5]] . "\n";
echo $input[$rand_keys[6]] . "\n";
echo $input[$rand_keys[7]] . "\n";
echo $input[$rand_keys[8]] . "\n";
echo $input[$rand_keys[9]] . "\n";
?>
Ich stelle mir nun noch ein paar Fragen!
1. Wie kann ich die mac.txt includen, dies aber als array
2. ich hab nun in der .txt alle kommas gelöscht siehe hier ! kann ich den Inhalt nun so als Array nutzen?
3. kann ich das Scruipt noch einfacher oderso machen?
mfg
Toasterfraktion
#6
geschrieben 13. April 2008 - 23:14
Hi,
also ich hab es jetzt mal so umgesetzt, wie ich es dir vorgeschlagen habe:
oder http://diewie.pastebin.com/f6c38841c
Erklärungen findest du im Source.
Gruß,
Stefan
also ich hab es jetzt mal so umgesetzt, wie ich es dir vorgeschlagen habe:
<form action="mac.php" method="POST">
<p>
<input name="teil1" type="text" id="teil1" value="00" size="2" maxlength="2" />-
<input name="teil2" type="text" id="teil2" value="11" size="2" maxlength="2" />-
<input name="teil3" type="text" id="teil3" value="D5" size="2" maxlength="2" />-
<input name="teil4" type="text" id="teil4" value="65" size="2" maxlength="2" />-
<input name="teil5" type="text" id="teil5" value="23" size="2" maxlength="2" />-
<input name="teil6" type="text" id="teil6" value="EN" size="2" maxlength="2" />
</p>
<input name="submit" type="submit">
</form>
<?php
if (isset($_POST['submit'])) {
$teil1 = $_POST['teil1'];
$teil2 = $_POST['teil2'];
$input_array = file('mac.txt'); // Datei in Array einlesen
$rand_mac = $input_array[array_rand($input_array)]; // Erst einen zufälligen Key auswählen und dann den zufälligen Eintrag $rand_mac zuweisen
unset($input_array); // Speicher wieder freigeben
echo 'Benutze Zufallsendung: '.$rand_mac."\n<br />\n<br />";
// Die ersten beiden Teile in das Array Mac einfügen und die zufällige Endung in 2er Gruppen aufteilen und anfügen (mergen)
$mac = array_merge(array($teil1, $teil2), str_split(trim($rand_mac),2));
echo 'Mac: '.join('-',$mac); // Zwischen den Arrayelementen Striche einfügen und ausgeben
}
?>
oder http://diewie.pastebin.com/f6c38841c
Erklärungen findest du im Source.
Gruß,
Stefan
#7
geschrieben 13. April 2008 - 23:30
Ui das is klasse.. ich denke immer so verschachtelt und habe wohl noch nicht das richtige Auge zum einfachen Scripten.
Könnt ihr mir da Tips geben wie ich das verbessern kann?
Habe aber noch einige Verständnisprobleme, udn zwar dieser Teil hier:
Wäre dir dankebar wenn du diesen Teil mir nochmal in allen einzelheiten erklären könntest.
Was bringt hier 'Mac: '.join('-',$mac); ?
Trotzdem Super vielen dank! =)
Gruß
Phil
Könnt ihr mir da Tips geben wie ich das verbessern kann?
Habe aber noch einige Verständnisprobleme, udn zwar dieser Teil hier:
// Die ersten beiden Teile in das Array Mac einfügen und die zufällige Endung in 2er Gruppen aufteilen und
anfügen (mergen)
$mac = array_merge(array($teil1, $teil2), str_split(trim($rand_mac),2));
echo 'Mac: '.join('-',$mac); // Zwischen den Arrayelementen Striche einfügen und ausgeben
Wäre dir dankebar wenn du diesen Teil mir nochmal in allen einzelheiten erklären könntest.
Was bringt hier 'Mac: '.join('-',$mac); ?
Trotzdem Super vielen dank! =)
Gruß
Phil
Dieser Beitrag wurde von Toasterfraktion bearbeitet: 13. April 2008 - 23:34
#8
geschrieben 14. April 2008 - 16:53
Also:
Bitte lies auch die Beschreibung durch, auf die du kommst, wenn du auf die Links klickst. Das Nicht-zu-kompliziert-Denken ist nicht einfach eine Sache, die man lernen kann. Man muss einfach experimentierfreudig sein und sich aktiv mit der Dokumentation auseinandersetzen. Der Rest ist reine Übungssache.
Gruß,
Stefan
$mac = array_merge(array($teil1, $teil2), str_split(trim($rand_mac),2));Als erstes wird ein Array aus $teil1 und $teil2 erzeugt (array($teil1, $teil2)). Dann werden führende und abschließende Whitespaces von $rand_mac entfernt (trim($rand_mac)), in diesem Fall sind das die Zeilenumbrüche (\n) die entfernt werden. Danach wird $rand_mac in lauter 2er Gruppen aufgeteilt und als Array zurückgegeben (str_split(...,2)). Zu guter letzt werden die beiden erzeugten Arrays zusammengefügt, und zwar in der Reihenfolge wie sie dort stehen (array_merge()).
echo 'Mac: '.join('-',$mac);join() / implode() fügt ein Array wieder zu einem String zusammen. Der erste Parameter enthält dabei das Zeichen, dass zwischen die Elemente eingefügt werden soll. In diesem Fall ist es ein Bindestrich -, da du die Mac ja so darstellst.
Bitte lies auch die Beschreibung durch, auf die du kommst, wenn du auf die Links klickst. Das Nicht-zu-kompliziert-Denken ist nicht einfach eine Sache, die man lernen kann. Man muss einfach experimentierfreudig sein und sich aktiv mit der Dokumentation auseinandersetzen. Der Rest ist reine Übungssache.
Gruß,
Stefan
#9
geschrieben 15. April 2008 - 15:35
Vielen Dank Diewie! Ich habe alles verstanden und es nun auch noch einmal nachgelesen. Das habe ich nun auch verstanden. Ich werde deinen Ratschlägen folgen und fleißig weiterlernen.
Gruß,
Phil
Gruß,
Phil
Thema verteilen:
Seite 1 von 1