Chers amis de la troisième lettre de l'alphabet bonjour,
J'ai écrit une petite fonction, copy_rep, permettant de copier un répertoire temp vers un autre répertoire. Copy_rep (toto), mettant les fichiers dan le répertoire toto marche très bien avec des ligne ressemblant à celle-ci :
char rep_base[55]="D:\\Medias\";
strcat (rep_base, mot2);
char creer_repb[70]="md ";
strcat (creer_repb,rep_base);
Bref, la chose marche pour le mieux, ce que je désire pouvoir faire pour communiquer avec un logiciel qui s'appelle R, c'est de pouvoir lire le nom du répertoire dans un fichier txt. J'ai alors écrits ce bout de programme pour lancer ma fonction :
Malheureusement, ce que la fonction lit dans le fichier n'a pas l'aire de marcher avec ce qu'elle lit? Et je ne suis point apte à comprendre pourquoi?
Merci d'avance Christophe
P.S. J'ai déjà écrit ce message et je m?excuse s'il y a eu un problème avec.,.
int main(void)
{
char Ligne[MAX_PATH+4];
LPOPENL lpoLine;
lpoLine = OpenLine("C:\\test.txt"); // On ouvre le fichier et on le charge...
ReadLine(lpoLine, 1, Ligne); // On charge la ligne 1
printf("%s\n", Ligne); // On l'affiche
ReadLine(lpoLine, 2, Ligne); // On charge la ligne 2
printf("%s\n", Ligne); // On l'affiche
// etc..
CloseLine(lpoLine); // On referme et on libere..
J'espère que tu alloues de la mémoire à fich avant de l'utiliser...sinon quand tu fais fscanf tu lui indiques %c ce qui signifie un seul caractère il me semble, faudrait plutôt utiliser %s.
On ne peut pas réouvrir, réallouer la mémoire, relire le fichier et renaviguer à partir du début du buffer à chaque fois que l'on veut extraire une ligne. Ça prendra un temps fou.
Effectuer ces traitements sur un buffer contenant déjà tout le fichier serait plus judicieux je crois.
if(lpBuffer) {
if(ReadFile(hFile, lpBuffer, dwSize, &dwSize, 0)) {
// On commence à compter à partir de 0
// On extrait donc la seconde ligne
if(GetLine(lpLine, lpBuffer, &dwSize, 1))
printf("%s\nTaille: %d\n", lpLine, dwSize);
}
VirtualFree(lpBuffer, 0, MEM_RELEASE);
}
CloseHandle(hFile);
}
return 0;
}
Le paramètre piSize est bidirectionnel.
Il prend en entré la taille de lpBuffer et contient en sortie la taille de lpDest (moins le 0 de fin de chaine).
je dois vous avouer que le temp, je m'en fous un peu, si je peux me permettre de parler avec la moindre des trivialité, car le truc dois de toute façon tourner sur une application qui fait de la statistique textuelle qui prend des plombe donc, en dessous de 1 minute, ça change que dalle pour moi.
Tout le seul problème et que le fread à l'aire de faire le même effet que lefsacan quant au ReadLine, il me renvoie "H#%" alors que "toto" était dans mon fichier txt. Je sais pas peut-être est-ce l'appel qui est mauvais... J'a mis...
ReadLine(1,"D:\\Medias\\Temp\\mot.txt", Line); */ il n'y a qu'une ligne au fichier, même qu'un mot...
J'ai pris la solution de Neo parce que c'est la première que j'ai pu lancer correctement mais merci aussi à SAKindom, en tout cas en 3 jours, j'ai appris que C c'était vacheement compliqué pour ma petite tronche...