Programmation batch
Résolu/Fermé
Benq360
Messages postés
96
Date d'inscription
dimanche 31 janvier 2010
Statut
Membre
Dernière intervention
15 décembre 2012
-
3 févr. 2010 à 18:01
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 6 févr. 2010 à 13:47
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 6 févr. 2010 à 13:47
Bonjour,
je fais quelques petits programmes, et je voudrais savoir comment faut il faire pour enregistrer la première ligne d'un fichier texte dans une variable
merci d'avance
je fais quelques petits programmes, et je voudrais savoir comment faut il faire pour enregistrer la première ligne d'un fichier texte dans une variable
merci d'avance
A voir également:
- Programmation batch
- Fichier batch - Guide
- Application de programmation - Guide
- Batch renommer une partie du nom de plusieurs fichiers - Guide
- Extension batch - Forum Windows
- [Batch] Renommer + incrémentation - Forum Autoit / batch
5 réponses
jojo67150
Messages postés
111
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
7 mai 2010
10
3 févr. 2010 à 18:04
3 févr. 2010 à 18:04
En batch je ne vois pas par contre en C c'est plus simple: tu ouvre le fichier, tu revien au début, et tu fait une boucle qui enregistre les characteres 1par1 dans une chaine jusqu'a ce qu'il tombe sur /n (dans l'autre sens le / mais sous mac sa existe pas ...)
Si sa peut t'aider et si sa t'interesse je peut te coder sa ...
Si sa peut t'aider et si sa t'interesse je peut te coder sa ...
Benq360
Messages postés
96
Date d'inscription
dimanche 31 janvier 2010
Statut
Membre
Dernière intervention
15 décembre 2012
3
3 févr. 2010 à 18:18
3 févr. 2010 à 18:18
oui ca peut mettre utile stp
jojo67150
Messages postés
111
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
7 mai 2010
10
4 févr. 2010 à 09:00
4 févr. 2010 à 09:00
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { FILE* fichier = NULL; char nomdefichier [] = "test.txt"; // tape ton nom de fichier a la place de test.txt char ligne [100000];// la chaine qui contiendras la 1ere ligne long boucle = 0; // booleen qui definit quand on entre et sort de la boucle long i=0; // compteur pour savoir on l'on en est dans la chaine int caractereActuel = 0; // variable contenat le caracteres en cours fichier=fopen(nomdefichier, "r+"); // Ouverture du fichier en mode lecture if (fichier != NULL) // si l'ouverture a reussi { rewind(fichier); // Je reviens au début du fichier do // cf while ligne 38 { caractereActuel = fgetc(fichier); // On lit le caractère // On l'enregistre dans la chain if (caractereActuel =='\n')// si le caractere est = au saut de ligne { printf("%s", ligne); // on affiche la ligne boucle=1;// et on sort de la boucle } else if (caractereActuel==EOF) // si il est impossible de lire le caractere en cours { boucle=1; // on sort de la boucle printf("Erreur : Impossible de lire le caractere"); // et on l'affiche } else // sinon { ligne [i]=caractereActuel; // On ajoute le caractere en cours a la chaine i++;// et on avnce dans la position } } while (boucle !=1); // On continue tant qu'il n'y pas d'erreur ou tant que l'on rencontre le signe de retour a la ligne } else // si l'ouverture du fichier a echouée { printf("Impossible d'ouvrir le fichier %s", nomdefichier); // On affiche le message d'erreur } fclose(fichier); // a la fin on n'oubli pas de fermer le fichier return 0; }
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
6 févr. 2010 à 13:47
6 févr. 2010 à 13:47
Bonjour,
Bien compliqué le code pour n'afficher que la première ligne ^^.
fichier=fopen(nomdefichier, "r+")
Ca n'ouvre pas en lecture seule mais en lecture écriture. Il vaut utiliser le mode "r" pour la lecture seule.
De plus, le rewind est inutile puisque le flux sera automatiquement au début du fichier.
Tout simplement, ça se résume à :
Cdlt,
Bien compliqué le code pour n'afficher que la première ligne ^^.
fichier=fopen(nomdefichier, "r+")
Ca n'ouvre pas en lecture seule mais en lecture écriture. Il vaut utiliser le mode "r" pour la lecture seule.
De plus, le rewind est inutile puisque le flux sera automatiquement au début du fichier.
Tout simplement, ça se résume à :
#include <stdio.h> #include <stdlib.h> int main(void) { FILE *fp=fopen("hihi.txt","r"); if (fp==NULL) { fputs("erreur à l'ouverture du fichier\n",stderr); return EXIT_FAILURE; } else { int c; while ((c=fgetc(fp))!='\n' && c!=EOF) putchar(c); fflush(stdout); fclose(fp),fp=NULL; } return 0; }
Cdlt,
dubcek
Messages postés
18782
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 avril 2025
5 630
4 févr. 2010 à 09:51
4 févr. 2010 à 09:51
hello
C:> type f2.txt aaa bbb ccc ddd C:> aa aaa C:> type aa.bat @echo off set x= for /f "delims=" %%a in ('type f2.txt') do ( if not defined x set x=%%a ) echo %x%
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Benq360
Messages postés
96
Date d'inscription
dimanche 31 janvier 2010
Statut
Membre
Dernière intervention
15 décembre 2012
3
6 févr. 2010 à 11:45
6 févr. 2010 à 11:45
merci ca marche !!!!!!!!!!!!!!!!