SPLITTER DE FICHIER (AVEC INTERFACE)

cs_Thaeron Messages postés 202 Date d'inscription vendredi 6 juillet 2001 Statut Membre Dernière intervention 31 octobre 2007 - 17 nov. 2002 à 13:21
 Utilisateur anonyme - 9 juin 2004 à 14:03
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/10121-splitter-de-fichier-avec-interface

Utilisateur anonyme
9 juin 2004 à 14:03
Je t'arréte tout de suite dam. Au lieu d'avoir recours à un autre language, demandes toi si t'aurais pas besoin d'avoir recours à un autre cerveau.

EN tout cas, avec la source de cet auteur, qui est venu sur vbfrance pour y pourrir des sources en disant que le C puisse puisse c'est mieux.

Alors prends un fichier de 10 MO, en .dat, faut le faire ... puis écris ce code...

dim buffer() as string
dim i as long

open fichier for binary access read #pf
redim buffer(0)
buffer(0) = space(LOF(1))
get #1,, buffer(0)
close #1

buffer = split(buffer(0), ";")

msgbox "Fichier chargé en mémoire et splitté !"

Au passage, la fonction équivalente au split en C++ c'est explode.

Bonne prog à toi, akh
damdam04 Messages postés 27 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 20 novembre 2006
9 juin 2004 à 11:20
salut
j'ai créé un spliter de fichier sous VB6 mais c'est super lent... donc je vais avoir recour au C++.
mon fichier est un .dat, chaque ligne du fichier contient des ";" et je voudrait récupérer toutes les données entre chaque ";".
es ce que quelqu'un peut me dire comment faire ou s'il existe une fonction "split" comme sous VB pour faire ça.
merci à tous
Utilisateur anonyme
1 mai 2004 à 16:16
Ton prog plante sur 1,24 Mo ... c pas optimisé, alors quand on sais pas coder, on critique pas les autres, et surtout pas un language de prog qui pourrais être bcp rapide que la merde que t'as pondu là...

Ah oui, laisses le valeur en Octets car en Ko ou Mo il planterais surement :)
DevMotion Messages postés 12 Date d'inscription dimanche 1 décembre 2002 Statut Membre Dernière intervention 12 décembre 2002
1 déc. 2002 à 23:54
Très bon splitter, merci !

[ - Dev Motion - ]
Utilisateur anonyme
19 nov. 2002 à 11:09
Il se trouve que j'ai aussi écrit un programme pour splitter les fichiers et il s'appelle Wincut. Il à été déposé le 04 sous le nom Découpage de fichiers. Je trouve que tu devrait prendre Taille*1024 et non Taille*1000; Il se trouve que l'opération de splittage est longue; modifie l'algorithme pour accélérer le processus.
Essaie d'ajouter une boîte de dialogue open et permet qu'on puisse présicer le chemin de destination. A part ça, l'interface est cool. Je connais maintenant le Kilo en trop. Il est vraiment en trop.
Ce ne sont que des observations. J'attends les votres pour Wincut 2.0.
24Karas Messages postés 233 Date d'inscription jeudi 4 juillet 2002 Statut Membre Dernière intervention 5 juillet 2008
17 nov. 2002 à 19:41
@llez voir la nouvelle version
elle est beaucoup mieux (bon ok j'ai laissé 1000 au lieu de 1024) mais juste pour le fun. Mon truc je souhaite pas le vendre c juste pour l'algo.
@++ à tous
PS : TRINITACS >si tu as des probl.m pour débuter pose moi des questions et j'essaierai de t'aider
!! Je suis pas rankunié !!
cs_chmod777 Messages postés 46 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 2 décembre 2006 1
17 nov. 2002 à 18:31
je me trompe peut etre mais je trouve qu'il y a un truc bizarre:
pour moi 1024 octets font 1 ko, je m'interroge donc lorsque je vois que tu utilise un facteur 1000 pour passer de l'un a l'autre [...]cele ou il y a taille * 1000[...]
bref a part ce petit truc cette source est bonne.
trinitacs Messages postés 249 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 7 août 2003 2
17 nov. 2002 à 16:36
Taehron >> merci
trinitacs Messages postés 249 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 7 août 2003 2
17 nov. 2002 à 16:33
24Karas >> Je ne me moquais pas du tout. Bon aller je vais essayer de bien prendre tout ce que tu m'a dis.

24Karas << "Peut-être est-ce parce ke tu es trops mauvais heuuuu NUL."
24Karas >> Sûrement.

24Karas << "Je vois que tu as un splitter en VB (WaouW)"
24Karas << Ce n'est pas moi qui l'ai fait. Je suis vraiment null alors je ne fais jamais de sources et même en vb.

24Karas << "Ce site est réservé aux critiques constructives"
24Karas >> Excuse moi d'avoir fait une constatation alieu de faire une remarque constructive.

24Karas << "(d'ailleur même sur vbfrance il n'y a pas de tes sources !!!)"
24Karas >> C'est normal je suistrop null pour programmer.

24Karas << "Envoie nous tes sources qu'on se marre :)))))"
24Karas >> Je te dis je suis trop null pour programer. Et puis il faut que je commence à apprendre le C++.

24Karas << "100/30 = 3 mais il reste 10 c con"
24Karas << Excuse moins je ne connais que l'addtion pour l'instant.

24Karas << "Et ouai p'tit gars fo réfléchir avant de parler :)"
24Karas >> Tout le monde n'a pas la chance d'être aussi intelligent que toi.

Pour le vb je pense la même chose que toi. Sauf que ça ta gonfléééééé mais moi ça m'a tué.

Pour les fichiers ton truc m'a sorti 14 fichiers avec des tailles soit de 980octects ou 1.04Ko etc.. Sache aussi que 1000 octects != 1ko. On compte en 1024 contrairement à ce que tu disait dans la description.

Franchement je voulais te dire bravo pour ta source propre et bien commentée, mais j'ai un peu moins envie maintenant.

ligne 151-155: J'ai pas compris pourquoi est ce que tu cherches à ouvrir le fichier de 2 manièeres?

ligne 148 et 165: Tu regarde 2 fois dans la même boucle si le pointeur est à la fin du fichier. Tu peux expliquer pourquoi?

Encore un autre truc quand on découpe: Pourquoi est ce que tu ouvres, met un char puis ferme aussitôt le fichier? C'est pas plus simple de l'ouvrir une fois jusqu'a ce qu'il fasse la bonne taille et ensuite on le ferme. Tu peux expliquer aussi pourquoi tu fais ça?

J'ai pas compris pourquoi est ceque tu n'as mal pris ce que j'ai dis?
Sans classe le.null
cs_Thaeron Messages postés 202 Date d'inscription vendredi 6 juillet 2001 Statut Membre Dernière intervention 31 octobre 2007
17 nov. 2002 à 16:26
ça sert a quoi ? j'ia tjs pas compris
if ((destination fopen (chemin_final,"ab")) NULL){
destination = fopen (chemin_final,"wb");}
je crois que la lenteur vient du fait que tu ferme et ouvre ls fichiers plein de fois dans l'algo, mais bon j'ai pô tout compris a ta logique de programmation
cs_Thaeron Messages postés 202 Date d'inscription vendredi 6 juillet 2001 Statut Membre Dernière intervention 31 octobre 2007
17 nov. 2002 à 16:01
24Karas calme toi, et evite les insultes ça sert pô a grand chose, c'est vrai que la taille des parties n'est pas identik, mais c'est normal car tu utiliser fread et fwrite au lieu de fgetc et fputc, et ça serait encore plus lent en faisant caractere par caractere. C'est vrai que le prog est assez lent, il met plusieur seconde pour decouper 6ko en 4 partie, cela dis on devrait pouvoir reduire ce temps, je vais regarder le source et te donner la solution si je la trouve.
Sinon continue 24Karas et t'enerve pas comme ça, ça sert a rien
24Karas Messages postés 233 Date d'inscription jeudi 4 juillet 2002 Statut Membre Dernière intervention 5 juillet 2008
17 nov. 2002 à 15:49
> TRINITACS
J'oubliais !!!
Il est peut être normal que les fichiers aient une taille différente.
Tu as déja essayé de couper 100 Ko en fichier de 30 Ko
100/30 = 3 mais il reste 10 c con
ça va te faire 3 fichiers de 30 Ko et 1 fichier de 10Ko
Et ouai p'tit gars fo réfléchir avant de parler :)
Avec Classe 24.KaraS
24Karas Messages postés 233 Date d'inscription jeudi 4 juillet 2002 Statut Membre Dernière intervention 5 juillet 2008
17 nov. 2002 à 15:44
>TRINITACS
Comme c bizare tu te moques mais tu n'as pas encore deposé de source sur ce site. Peut-être est-ce parce ke tu es trops mauvais heuuuu NUL.
Je vois que tu as un splitter en VB (WaouW)
Toi tu dois vraiment être trop fort.
Je suis passé par le vb (2 mois) et ça m'a vite gonflééé. C'est pas de la programation ça, c du bricolage. Tu contrôle rien et puis tu rajoutes tes dll dans chaque exe :) (ils font au - 800Ko tes exe c pour ça que tu as beoin de les couper)
PS : Ce site est réservé aux critiques constructives et non aux minables qui se la joue en VB (d'ailleur même sur vbfrance il n'y a pas de tes sources !!!)
Envoie nous tes sources qu'on se marre :)))))

Misérablement 24.KaraS
24Karas Messages postés 233 Date d'inscription jeudi 4 juillet 2002 Statut Membre Dernière intervention 5 juillet 2008
17 nov. 2002 à 15:35
>THAERON
Merci pour ton super commentaire. je vais rajouter cette option. En + c vraiment pas dur à coder.
cordialement 24.KaraS
trinitacs Messages postés 249 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 7 août 2003 2
17 nov. 2002 à 14:07
Arf ton prog est vraiment lent :( Ça fais une minute qu'il est en train de découper un bmp de 133Ko. Bon d'accord mon pc est un peu vieux mais j'en ai un en vb qui fais ça instantanément. Ce qui est bizarre c'est que tous les fichier coupé ne font pas la même taille. Encore plus étonnant j'ai mis 10 dans la case et les fichier font environ 1Ko. Arf je vais en avoir 133 :(, bon ça fait 3 minutes, Ctrl Alt Supr et je regfarde at source pour voir toout ça. Arf non pas besoin ça vient juste de se terminer :), 14 fichiers de tailles varaible.
C'est quoi l'octect en trop.
cs_Thaeron Messages postés 202 Date d'inscription vendredi 6 juillet 2001 Statut Membre Dernière intervention 31 octobre 2007
17 nov. 2002 à 13:21
pô mal =) meme sympas, mais tu devrai mettre une option pour mettre soit en Ko ou Mo, et tu devrai mettre un fichier de reference, qui contient le nom de l'exe et le nombre de partition par exemple et la taille du fichier ou un checksum pour verifier qu'aucune partie ne manque ou n'est altérée. Mais la il est eskellent =) en plus il passe sans prob l'octet 1A.
Rejoignez-nous