Befehl zum zufälligen kopieren von dateien
-
Kopieren kannst du entweder über FILE-Operationen (Ausgangsdatei blockweise per fread() lesen und per fwrite() schreiben) oder über Systemfunktionen wie CopyFile().
Als Zufallskomponente kannst du man: rand() verwenden (das liefert einen pseudo-zufälligen Wert zwischen 0 und RAND_MAX - mit dem du jetzt nach Belieben weiterarbeiten kannst).
-
Vorab: Portabel (also rein mit Funktionen aus ANSI C) wird das nicht gehen. Du solltest uns also mitteilen auf welchem System du gedenkst dieses Programm zu benutzen.
Grob das vorgehen: Du machst eine Liste aller mp3s auf dem Quelllaufwerk, zudem zählst du mit wie groß die Liste ist (N). Dann generierst du eine Zufallszahl zwischen 0 und N-1 anhand derer du ein zu kopierendes Lied aus der Liste wählst. Das gewählte mp3 wird nun auf das Ziellaufwerk kopiert und aus der Liste entfernt (es soll ja nicht zufällig mehrfach kopiert werden). usw...
-
hmmm ich hab gedacht c hat dafür ne eigene radom funktion oder sowas, selber eine schreiben wollte ich nun nicht noch aber wenn es sein muss naja, kann man ja auch nochmal anderweitig verwenden;)
os wäre win xp.
also nett wäre jetzt nochmal ein kleiner beispiel code, da ich die funktion zum kopieren von daten ja noch nicht kennengelernt habe, ausserdem frage ich mich, ob es nicht zu lange dauert beim start des programms eine liste von allen mp3s zu erstellen, kann man das nicht irgendwie statisch in dem programm an geben bzw in einer externen datei?
-
hustender_hugo schrieb:
hmmm ich hab gedacht c hat dafür ne eigene radom funktion oder sowas, selber eine schreiben wollte ich nun nicht noch aber wenn es sein muss naja, kann man ja auch nochmal anderweitig verwenden;)
Ja, hat es auch. Nur mußt du die an deine BEdürfnisse anpassen

os wäre win xp.
Da kannst du FindFirstFile()/FindNextFile() verwenden, um alle betreffenden Dateien zu finden - und das oben angegebene CopyFile() zum Kopieren.
-
okay ich werde mich mal ransetzten, wenn ich soweit fragen habe dann werde ich mich hier wieder melden, bisher danke ich dir aufjedenfall schonmal für deine bemühungen;)
-
hustender_hugo schrieb:
hmmm ich hab gedacht c hat dafür ne eigene radom funktion oder sowas, selber eine schreiben wollte ich nun nicht noch aber wenn es sein muss naja, kann man ja auch nochmal anderweitig verwenden;)
os wäre win xp.
also nett wäre jetzt nochmal ein kleiner beispiel code, da ich die funktion zum kopieren von daten ja noch nicht kennengelernt habe, ausserdem frage ich mich, ob es nicht zu lange dauert beim start des programms eine liste von allen mp3s zu erstellen, kann man das nicht irgendwie statisch in dem programm an geben bzw in einer externen datei?
Also ja die random funktion wurde doch auch schon genant rand().
Guck mal bei den Artikeln ganz unten im Forum nach da gibt es ein TOP Artikel zu der Funktion.
Wegen Beispielcode schau dir mal die MSDN an da wird CopyFile() und FindFirstFile() genau erklärt oder such im unterforum WinApi (wirst denk ich sowieso verschoben ;))
zu lange dauern? Wie kommst du dadrauf? Wieviele mp3's hast du denn? Selbst bei tausenden sollte das nicht zu lange dauern da find ich es aufwendiger noch ne Abfrage oder sowas zu machen wie viele im ordner sind und nerviger für den User.schirrmie
-
schirrmie schrieb:
wirst denk ich sowieso verschoben

Aber sowas von

-
Dieser Thread wurde von Moderator/in Tim aus dem Forum ANSI C in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
schirrmie schrieb:
hustender_hugo schrieb:
hmmm ich hab gedacht c hat dafür ne eigene radom funktion oder sowas, selber eine schreiben wollte ich nun nicht noch aber wenn es sein muss naja, kann man ja auch nochmal anderweitig verwenden;)
os wäre win xp.
also nett wäre jetzt nochmal ein kleiner beispiel code, da ich die funktion zum kopieren von daten ja noch nicht kennengelernt habe, ausserdem frage ich mich, ob es nicht zu lange dauert beim start des programms eine liste von allen mp3s zu erstellen, kann man das nicht irgendwie statisch in dem programm an geben bzw in einer externen datei?
Also ja die random funktion wurde doch auch schon genant rand().
Guck mal bei den Artikeln ganz unten im Forum nach da gibt es ein TOP Artikel zu der Funktion.
Wegen Beispielcode schau dir mal die MSDN an da wird CopyFile() und FindFirstFile() genau erklärt oder such im unterforum WinApi (wirst denk ich sowieso verschoben ;))
zu lange dauern? Wie kommst du dadrauf? Wieviele mp3's hast du denn? Selbst bei tausenden sollte das nicht zu lange dauern da find ich es aufwendiger noch ne Abfrage oder sowas zu machen wie viele im ordner sind und nerviger für den User.schirrmie
ich weiß nicht ob es zu lange dauert aber afaik hat usb 2.0 nur ne 16mbit verbindung und ich habe nun doch recht viele unterverzeichnisse auf meiner platte aber wenn du meinst das es langt dann auch gut, soll er halt bei jeden start neu scannen;)
-
Na mir ist es doch an sich scheis egal was du tust

Kenn ja deine Anforderungen nicht. Wenn du meinst du musst es anders machen dann tu das nur ich würde es automatisch machen. Dafür schreib ich mir ja ein Programm damit das meine Aufgaben übernimmt
Aber Probier es aus. Wenn es wirklich zu lange dauert dann musst es anders machen.schirrmie