PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ID-Generator



t23
11-08-2005, 06:59
Hallo,

ich benötige ein Script (ksh) das mir zufällig 3 oder 4 stellige Zahlen generiert, ohne daß irgendeine davon doppelt generiert wird, denn ich benötige diese Zahlen als ID's.
Beim start des Scriptes soll man noch die Anzahl der zu generierenden ID's angeben können.
Kann mir da jemand einen Tip geben wie ich das anstellen kann?

Wäre für jede Hilfe dankbar

MFG

Pingu
11-08-2005, 08:29
Zählen?


Pingu

t23
11-08-2005, 08:43
Das dauert zu lange.
Ich habe hier eine Tabelle mit sehr vielen Datensätzen, und jede Tabelle ist mit einer anderen verknüpft, wobei auch jede Tabelle irgendeine ID pro Datensatz erhalten soll.

Nun soll das Script mir diese ID's erzeugen.
Sagen wir mal so: ich will dem Script z.B. am Anfang die Zahl 1000 übergeben, und es soll mir dann 1000 ID's generieren, ohne beim nächsten Scriptstart eine bereits generierte ID doppelt ausgeben.

Versteht mich einer?

iluminat23
11-08-2005, 11:20
eventuel verstehe ich was falsch, schreibe doch einfach in eine datei bei welcher zahl das script stehen geblieben ist, und dann zähle einfach weiter hoch.

mfg philipp

Born2Burn
11-08-2005, 12:46
Da du von Tabellen spricht, gehe ich einfach mal davon aus, das du eine DB zum Speichern der Daten verwendest. Die einfachste Lösungs (meiner Meinung) nach ist in einem solchen Fall den Schlüssel mit dem Attribut Autoincrement (Mysql) oder Serial (Postgresql) auszustatten und die ID so automatisch generieren zu lassen.

mcspam
08-09-2005, 21:36
meinst du zufällig sowas:


#!/usr/bin/perl -T
use warnings;
use strict;

my $count = shift; # first argument
die "please pass an numeric argument\n" unless defined $count;

my %numbers = (); # empty hash of numbers

while( $count-- > 0) {
my $nr = int(rand(9899)+100); # random number between 100 and 9999
$numbers{$nr} = 1; # create key unless it exists
}

print join "\n", keys %numbers;