Je voudrais supprimer les 0 de même position dans chaque chaine de
caractère.
Par exemple dans notre cas, nous allons supprimer les 0 dans la
position 4 de chaque chaine car dans cette position nous avons toutes
les chaines sont à 0.
Je voudrais supprimer les 0 de même position dans chaque chaine de
caractère.
Par exemple dans notre cas, nous allons supprimer les 0 dans la
position 4 de chaque chaine car dans cette position nous avons toutes
les chaines sont à 0.
Je voudrais supprimer les 0 de même position dans chaque chaine de
caractère.
Par exemple dans notre cas, nous allons supprimer les 0 dans la
position 4 de chaque chaine car dans cette position nous avons toutes
les chaines sont à 0.
Salut,
J'ai un fichier texte bien formé contient deux champs: objet et
attribut.
tous les objets sont des entiers et tous les attributs sont de chaines
de caractères de même taille.
chaque ligne contient un objet et son attribut par exemple:
essai.txt:
1 11100
2 10101
3 01001
4 10001
Je voudrais supprimer les 0 de même position dans chaque chaine de
caractère.
j'ai trouvé une difficulté de résoudre ce problème
de plus imaginez si nous avons un fichier volumineux.
SVP, j'ai besoin de vos aides.
Salut,
J'ai un fichier texte bien formé contient deux champs: objet et
attribut.
tous les objets sont des entiers et tous les attributs sont de chaines
de caractères de même taille.
chaque ligne contient un objet et son attribut par exemple:
essai.txt:
1 11100
2 10101
3 01001
4 10001
Je voudrais supprimer les 0 de même position dans chaque chaine de
caractère.
j'ai trouvé une difficulté de résoudre ce problème
de plus imaginez si nous avons un fichier volumineux.
SVP, j'ai besoin de vos aides.
Salut,
J'ai un fichier texte bien formé contient deux champs: objet et
attribut.
tous les objets sont des entiers et tous les attributs sont de chaines
de caractères de même taille.
chaque ligne contient un objet et son attribut par exemple:
essai.txt:
1 11100
2 10101
3 01001
4 10001
Je voudrais supprimer les 0 de même position dans chaque chaine de
caractère.
j'ai trouvé une difficulté de résoudre ce problème
de plus imaginez si nous avons un fichier volumineux.
SVP, j'ai besoin de vos aides.
Pouvez-vous m'expliquer votre idée ?
Quel langage de programmation vous utilisez dans ce code ?
Pouvez-vous m'expliquer votre idée ?
Quel langage de programmation vous utilisez dans ce code ?
Pouvez-vous m'expliquer votre idée ?
Quel langage de programmation vous utilisez dans ce code ?
Salut,
J'ai un fichier texte bien formé contient deux champs: objet et
attribut.
tous les objets sont des entiers et tous les attributs sont de chaines
de caractères de même taille.
chaque ligne contient un objet et son attribut par exemple:
essai.txt:
1 11100
2 10101
3 01001
4 10001
Je voudrais supprimer les 0 de même position dans chaque chaine de
caractère.
Par exemple dans notre cas, nous allons supprimer les 0 dans la
position 4 de chaque chaine car dans cette position nous avons toutes
les chaines sont à 0.
le résultat est :
1 1110
2 1011
3 0101
4 1001
j'ai trouvé une difficulté de résoudre ce problème, de plus imaginez
si nous avons un fichier volumineux.
SVP, j'ai besoin de vos aides.
Salut,
J'ai un fichier texte bien formé contient deux champs: objet et
attribut.
tous les objets sont des entiers et tous les attributs sont de chaines
de caractères de même taille.
chaque ligne contient un objet et son attribut par exemple:
essai.txt:
1 11100
2 10101
3 01001
4 10001
Je voudrais supprimer les 0 de même position dans chaque chaine de
caractère.
Par exemple dans notre cas, nous allons supprimer les 0 dans la
position 4 de chaque chaine car dans cette position nous avons toutes
les chaines sont à 0.
le résultat est :
1 1110
2 1011
3 0101
4 1001
j'ai trouvé une difficulté de résoudre ce problème, de plus imaginez
si nous avons un fichier volumineux.
SVP, j'ai besoin de vos aides.
Salut,
J'ai un fichier texte bien formé contient deux champs: objet et
attribut.
tous les objets sont des entiers et tous les attributs sont de chaines
de caractères de même taille.
chaque ligne contient un objet et son attribut par exemple:
essai.txt:
1 11100
2 10101
3 01001
4 10001
Je voudrais supprimer les 0 de même position dans chaque chaine de
caractère.
Par exemple dans notre cas, nous allons supprimer les 0 dans la
position 4 de chaque chaine car dans cette position nous avons toutes
les chaines sont à 0.
le résultat est :
1 1110
2 1011
3 0101
4 1001
j'ai trouvé une difficulté de résoudre ce problème, de plus imaginez
si nous avons un fichier volumineux.
SVP, j'ai besoin de vos aides.
Salut,
J'ai un fichier texte bien formé contient deux champs: objet et
attribut.
tous les objets sont des entiers et tous les attributs sont de chaines
de caractères de même taille.
chaque ligne contient un objet et son attribut par exemple:
essai.txt:
1 11100
2 10101
3 01001
4 10001
Je voudrais supprimer les 0 de même position dans chaque chaine de
caractère.
Par exemple dans notre cas, nous allons supprimer les 0 dans la
position 4 de chaque chaine car dans cette position nous avons toutes
les chaines sont à 0.
le résultat est :
1 1110
2 1011
3 0101
4 1001
j'ai trouvé une difficulté de résoudre ce problème, de plus imaginez
si nous avons un fichier volumineux.
SVP, j'ai besoin de vos aides.
Salut,
J'ai un fichier texte bien formé contient deux champs: objet et
attribut.
tous les objets sont des entiers et tous les attributs sont de chaines
de caractères de même taille.
chaque ligne contient un objet et son attribut par exemple:
essai.txt:
1 11100
2 10101
3 01001
4 10001
Je voudrais supprimer les 0 de même position dans chaque chaine de
caractère.
Par exemple dans notre cas, nous allons supprimer les 0 dans la
position 4 de chaque chaine car dans cette position nous avons toutes
les chaines sont à 0.
le résultat est :
1 1110
2 1011
3 0101
4 1001
j'ai trouvé une difficulté de résoudre ce problème, de plus imaginez
si nous avons un fichier volumineux.
SVP, j'ai besoin de vos aides.
Salut,
J'ai un fichier texte bien formé contient deux champs: objet et
attribut.
tous les objets sont des entiers et tous les attributs sont de chaines
de caractères de même taille.
chaque ligne contient un objet et son attribut par exemple:
essai.txt:
1 11100
2 10101
3 01001
4 10001
Je voudrais supprimer les 0 de même position dans chaque chaine de
caractère.
Par exemple dans notre cas, nous allons supprimer les 0 dans la
position 4 de chaque chaine car dans cette position nous avons toutes
les chaines sont à 0.
le résultat est :
1 1110
2 1011
3 0101
4 1001
j'ai trouvé une difficulté de résoudre ce problème, de plus imaginez
si nous avons un fichier volumineux.
SVP, j'ai besoin de vos aides.
On 6 juil, 08:53, programmation wrote:
> Pouvez-vous m'expliquer votre idée ?
> Quel langage de programmation vous utilisez dans ce code ?
C'est juste du C/Win32 de base..
On lit et charge le fichier dans un buffer puis on découpe les lignes
et on déplace dans chaque ligne de la position 5 à 4 pour supprimer
ton '0'
En C standard, remplace les CreateFile()-ReadFile()-CloseHandle() par
fopen()-fgets()-fclose() en lisant ligne à ligne (ça évite même d e
découper par strtok()..)
On 6 juil, 08:53, programmation <bouali.a...@gmail.com> wrote:
> Pouvez-vous m'expliquer votre idée ?
> Quel langage de programmation vous utilisez dans ce code ?
C'est juste du C/Win32 de base..
On lit et charge le fichier dans un buffer puis on découpe les lignes
et on déplace dans chaque ligne de la position 5 à 4 pour supprimer
ton '0'
En C standard, remplace les CreateFile()-ReadFile()-CloseHandle() par
fopen()-fgets()-fclose() en lisant ligne à ligne (ça évite même d e
découper par strtok()..)
On 6 juil, 08:53, programmation wrote:
> Pouvez-vous m'expliquer votre idée ?
> Quel langage de programmation vous utilisez dans ce code ?
C'est juste du C/Win32 de base..
On lit et charge le fichier dans un buffer puis on découpe les lignes
et on déplace dans chaque ligne de la position 5 à 4 pour supprimer
ton '0'
En C standard, remplace les CreateFile()-ReadFile()-CloseHandle() par
fopen()-fgets()-fclose() en lisant ligne à ligne (ça évite même d e
découper par strtok()..)
- Je n'arrive pas à adapter votre solution pour supprimer les
colonnes.
Pouvez-vous me fournir une version en C ?
- J'ai résolu la partie de suppression des lignes. Mais, elle me reste
la partie du suppression des colonnes.
- Je n'arrive pas à adapter votre solution pour supprimer les
colonnes.
Pouvez-vous me fournir une version en C ?
- J'ai résolu la partie de suppression des lignes. Mais, elle me reste
la partie du suppression des colonnes.
- Je n'arrive pas à adapter votre solution pour supprimer les
colonnes.
Pouvez-vous me fournir une version en C ?
- J'ai résolu la partie de suppression des lignes. Mais, elle me reste
la partie du suppression des colonnes.
programmation wrote:
> - Je n'arrive pas à adapter votre solution pour supprimer les
> colonnes.
> Pouvez-vous me fournir une version en C ?
> - J'ai résolu la partie de suppression des lignes. Mais, elle me rest e
> la partie du suppression des colonnes.
Pour identifier les colonnes ne contenant que des "0", tu peux faire une
première lecture du fichier pour mettre les valeurs (num + attribut)
dans un tableau de structures et utiliser un tableau d'entier pour
compter le nombre de '0' total par colonne : si c'est égal au nombre de
lignes, c'est qu'il n'y a que des "0" dans la colonne donnée.
Ensuite tu lis ton tableau de structures et tu supprimes les "0" pour
chaque position de ton attribut correspondant au compteur précédent
lorsque le compteur est égal au nombre de lignes ("if (nColumn[i] = =
nCpt)" ci-dessous)
Par exemple =>
#include <tchar.h>
#include <iostream>
#define MAXLINE 1024
#define STEP 10
typedef struct dataStruct
{
char sNum[6];
char sAttrib[32];
} dataStruct;
int _tmain(int argc, _TCHAR* argv[])
{
char sLine[MAXLINE];
int nColumn[32] = {0}, nCpt = 0, nAttribLength= 0, nMaxAttribLength = 0;
FILE *pFile, *pFileOut;
pFile = fopen("test.txt","r");
pFileOut = fopen("test2.txt","w");
int dataTabStringMax = STEP;
dataStruct *dataTabString;
if (pFile && pFileOut)
{
dataTabString = (dataStruct *) malloc(d ataTabStringMax *
sizeof(dataStruct));
while (fgets(sLine, MAXLINE, pFile))
{
strncpy(dataTabString[nCp t].sNum, sLine, 5);
dataTabString[nCpt].sNum[ 5] = ' ';
nAttribLength = strlen( sLine)-6;
if (nAttribLength>0)
{
strncpy(d ataTabString[nCpt].sAttrib, &sLine[5], nAttribLength);
dataTabSt ring[nCpt].sAttrib[nAttribLength] = ' ';
for (int i = 0; i<nAttribLength; i++)
{
if (dataTabString->sAttrib[i] == '0')
nColumn[i]+=1;
}
nCpt+=1 ;
if (nAttr ibLength > nMaxAttribLength)
nMaxAttribLength = nAttribLength;
}
if (nCpt == dataTabSt ringMax)
{
dataTabSt ringMax += STEP;
dataTabSt ring = (dataStruct *) realloc(dataTabString,
dataTabStringMax * sizeof(dataStruct));
if (dataT abString == NULL)
exit(1);
}
}
// Lecture tableau de structures pour sup primer les "0"
for (int j = 0; j<nCpt; j++)
{
int nShift = 0;
for (int i = 0; i<nMaxA ttribLength; i++)
{
if (nColu mn[i] == nCpt)
{
memmove(&dataTabString[j].sAttrib[i-nShift],
&dataTabString[j].sAttrib[i-nShift+1],
strlen(&dataTabString[j].sAttrib[i-nShift+1]) + 1);
nShift+=1;
}
}
if (strcspn (dataTabStrin g[j].sAttrib, "1") <
strlen(dataTabString[j].sAttrib))
fprintf(p FileOut, "%s%sn", dataTabString[j].sNum,
dataTabString[j].sAttrib);
}
free(dataTabString);
fclose(pFile);
fclose(pFileOut);
}
return 0;
}
programmation wrote:
> - Je n'arrive pas à adapter votre solution pour supprimer les
> colonnes.
> Pouvez-vous me fournir une version en C ?
> - J'ai résolu la partie de suppression des lignes. Mais, elle me rest e
> la partie du suppression des colonnes.
Pour identifier les colonnes ne contenant que des "0", tu peux faire une
première lecture du fichier pour mettre les valeurs (num + attribut)
dans un tableau de structures et utiliser un tableau d'entier pour
compter le nombre de '0' total par colonne : si c'est égal au nombre de
lignes, c'est qu'il n'y a que des "0" dans la colonne donnée.
Ensuite tu lis ton tableau de structures et tu supprimes les "0" pour
chaque position de ton attribut correspondant au compteur précédent
lorsque le compteur est égal au nombre de lignes ("if (nColumn[i] = =
nCpt)" ci-dessous)
Par exemple =>
#include <tchar.h>
#include <iostream>
#define MAXLINE 1024
#define STEP 10
typedef struct dataStruct
{
char sNum[6];
char sAttrib[32];
} dataStruct;
int _tmain(int argc, _TCHAR* argv[])
{
char sLine[MAXLINE];
int nColumn[32] = {0}, nCpt = 0, nAttribLength= 0, nMaxAttribLength = 0;
FILE *pFile, *pFileOut;
pFile = fopen("test.txt","r");
pFileOut = fopen("test2.txt","w");
int dataTabStringMax = STEP;
dataStruct *dataTabString;
if (pFile && pFileOut)
{
dataTabString = (dataStruct *) malloc(d ataTabStringMax *
sizeof(dataStruct));
while (fgets(sLine, MAXLINE, pFile))
{
strncpy(dataTabString[nCp t].sNum, sLine, 5);
dataTabString[nCpt].sNum[ 5] = ' ';
nAttribLength = strlen( sLine)-6;
if (nAttribLength>0)
{
strncpy(d ataTabString[nCpt].sAttrib, &sLine[5], nAttribLength);
dataTabSt ring[nCpt].sAttrib[nAttribLength] = ' ';
for (int i = 0; i<nAttribLength; i++)
{
if (dataTabString->sAttrib[i] == '0')
nColumn[i]+=1;
}
nCpt+=1 ;
if (nAttr ibLength > nMaxAttribLength)
nMaxAttribLength = nAttribLength;
}
if (nCpt == dataTabSt ringMax)
{
dataTabSt ringMax += STEP;
dataTabSt ring = (dataStruct *) realloc(dataTabString,
dataTabStringMax * sizeof(dataStruct));
if (dataT abString == NULL)
exit(1);
}
}
// Lecture tableau de structures pour sup primer les "0"
for (int j = 0; j<nCpt; j++)
{
int nShift = 0;
for (int i = 0; i<nMaxA ttribLength; i++)
{
if (nColu mn[i] == nCpt)
{
memmove(&dataTabString[j].sAttrib[i-nShift],
&dataTabString[j].sAttrib[i-nShift+1],
strlen(&dataTabString[j].sAttrib[i-nShift+1]) + 1);
nShift+=1;
}
}
if (strcspn (dataTabStrin g[j].sAttrib, "1") <
strlen(dataTabString[j].sAttrib))
fprintf(p FileOut, "%s%sn", dataTabString[j].sNum,
dataTabString[j].sAttrib);
}
free(dataTabString);
fclose(pFile);
fclose(pFileOut);
}
return 0;
}
programmation wrote:
> - Je n'arrive pas à adapter votre solution pour supprimer les
> colonnes.
> Pouvez-vous me fournir une version en C ?
> - J'ai résolu la partie de suppression des lignes. Mais, elle me rest e
> la partie du suppression des colonnes.
Pour identifier les colonnes ne contenant que des "0", tu peux faire une
première lecture du fichier pour mettre les valeurs (num + attribut)
dans un tableau de structures et utiliser un tableau d'entier pour
compter le nombre de '0' total par colonne : si c'est égal au nombre de
lignes, c'est qu'il n'y a que des "0" dans la colonne donnée.
Ensuite tu lis ton tableau de structures et tu supprimes les "0" pour
chaque position de ton attribut correspondant au compteur précédent
lorsque le compteur est égal au nombre de lignes ("if (nColumn[i] = =
nCpt)" ci-dessous)
Par exemple =>
#include <tchar.h>
#include <iostream>
#define MAXLINE 1024
#define STEP 10
typedef struct dataStruct
{
char sNum[6];
char sAttrib[32];
} dataStruct;
int _tmain(int argc, _TCHAR* argv[])
{
char sLine[MAXLINE];
int nColumn[32] = {0}, nCpt = 0, nAttribLength= 0, nMaxAttribLength = 0;
FILE *pFile, *pFileOut;
pFile = fopen("test.txt","r");
pFileOut = fopen("test2.txt","w");
int dataTabStringMax = STEP;
dataStruct *dataTabString;
if (pFile && pFileOut)
{
dataTabString = (dataStruct *) malloc(d ataTabStringMax *
sizeof(dataStruct));
while (fgets(sLine, MAXLINE, pFile))
{
strncpy(dataTabString[nCp t].sNum, sLine, 5);
dataTabString[nCpt].sNum[ 5] = ' ';
nAttribLength = strlen( sLine)-6;
if (nAttribLength>0)
{
strncpy(d ataTabString[nCpt].sAttrib, &sLine[5], nAttribLength);
dataTabSt ring[nCpt].sAttrib[nAttribLength] = ' ';
for (int i = 0; i<nAttribLength; i++)
{
if (dataTabString->sAttrib[i] == '0')
nColumn[i]+=1;
}
nCpt+=1 ;
if (nAttr ibLength > nMaxAttribLength)
nMaxAttribLength = nAttribLength;
}
if (nCpt == dataTabSt ringMax)
{
dataTabSt ringMax += STEP;
dataTabSt ring = (dataStruct *) realloc(dataTabString,
dataTabStringMax * sizeof(dataStruct));
if (dataT abString == NULL)
exit(1);
}
}
// Lecture tableau de structures pour sup primer les "0"
for (int j = 0; j<nCpt; j++)
{
int nShift = 0;
for (int i = 0; i<nMaxA ttribLength; i++)
{
if (nColu mn[i] == nCpt)
{
memmove(&dataTabString[j].sAttrib[i-nShift],
&dataTabString[j].sAttrib[i-nShift+1],
strlen(&dataTabString[j].sAttrib[i-nShift+1]) + 1);
nShift+=1;
}
}
if (strcspn (dataTabStrin g[j].sAttrib, "1") <
strlen(dataTabString[j].sAttrib))
fprintf(p FileOut, "%s%sn", dataTabString[j].sNum,
dataTabString[j].sAttrib);
}
free(dataTabString);
fclose(pFile);
fclose(pFileOut);
}
return 0;
}
- Il manque un accolade fermant qui correspondant à l'accolade ouvert
de if (pFile && pFileOut)
j'ai ajouté cet accolade avant de faire free(dataTabString);
C'est çà ?
- Comme indication, le fichier d'entrée test.txt est construit selon
le format suivant:
fprintf("%10d%sn", sNum,sAttrib);
Donc, je ne sais pas pourquoi vous mettez sNum comme chaine de
caractère et de taille 6 et sAttrib de taille 32
char sNum[6]; et char sAttrib[32]; ?
Je ne sais pas pourquoi l'objet 10 lui manque un caractère 1 pour son
attribut.
c-à-d pour l'objet 10 on doit obtenir "1011"
- J'ai remarqué que votre dernier programme permet de supprimer des
colonnes mais aussi des lignes vides.
Comment vous avez supprimé des lignes vides par ce dernier programme ?
- Il manque un accolade fermant qui correspondant à l'accolade ouvert
de if (pFile && pFileOut)
j'ai ajouté cet accolade avant de faire free(dataTabString);
C'est çà ?
- Comme indication, le fichier d'entrée test.txt est construit selon
le format suivant:
fprintf("%10d%sn", sNum,sAttrib);
Donc, je ne sais pas pourquoi vous mettez sNum comme chaine de
caractère et de taille 6 et sAttrib de taille 32
char sNum[6]; et char sAttrib[32]; ?
Je ne sais pas pourquoi l'objet 10 lui manque un caractère 1 pour son
attribut.
c-à-d pour l'objet 10 on doit obtenir "1011"
- J'ai remarqué que votre dernier programme permet de supprimer des
colonnes mais aussi des lignes vides.
Comment vous avez supprimé des lignes vides par ce dernier programme ?
- Il manque un accolade fermant qui correspondant à l'accolade ouvert
de if (pFile && pFileOut)
j'ai ajouté cet accolade avant de faire free(dataTabString);
C'est çà ?
- Comme indication, le fichier d'entrée test.txt est construit selon
le format suivant:
fprintf("%10d%sn", sNum,sAttrib);
Donc, je ne sais pas pourquoi vous mettez sNum comme chaine de
caractère et de taille 6 et sAttrib de taille 32
char sNum[6]; et char sAttrib[32]; ?
Je ne sais pas pourquoi l'objet 10 lui manque un caractère 1 pour son
attribut.
c-à-d pour l'objet 10 on doit obtenir "1011"
- J'ai remarqué que votre dernier programme permet de supprimer des
colonnes mais aussi des lignes vides.
Comment vous avez supprimé des lignes vides par ce dernier programme ?
programmation wrote:
> - Il manque un accolade fermant qui correspondant à l'accolade ouv ert
> de if (pFile && pFileOut)
> j'ai ajouté cet accolade avant de faire free(dataTabString);
> C'est çà ?
Non, tu as dû mal copier-coller : je viens de re-tester, il ne manque
pas d'accolade. Mais si tu as corrigé et que ça compile, ça va..
> - Comme indication, le fichier d'entrée test.txt est construit selon
> le format suivant:
> fprintf("%10d%sn", sNum,sAttrib);
> Donc, je ne sais pas pourquoi vous mettez sNum comme chaine de
> caractère et de taille 6 et sAttrib de taille 32
> char sNum[6]; et char sAttrib[32]; ?
C'est par rapport à ton fichier d'exemple que j'ai copié-collé:
1 110101
...
=> il y a 6 caractères pour ton Num
Mais c'est à toi de décider du format et donc de changer ce que tu ve ux.
> Je ne sais pas pourquoi l'objet 10 lui manque un caractère 1 pour son
> attribut.
> c-à-d pour l'objet 10 on doit obtenir "1011"
Parce que tu n'as pas mis de retour chariot après la dernière ligne.
> - J'ai remarqué que votre dernier programme permet de supprimer des
> colonnes mais aussi des lignes vides.
> Comment vous avez supprimé des lignes vides par ce dernier programme ?
Tu le vois en lisant le code lors de la création du 2nd fichier, par la
ligne de test:
if (strcspn (dataTabString[j].sAttrib, "1") <
strlen(dataTabString[j].sAttrib))
Je teste juste s'il y a au moins un "1" dans l'attribut. Si c'est le
cas, on écrit la ligne
programmation wrote:
> - Il manque un accolade fermant qui correspondant à l'accolade ouv ert
> de if (pFile && pFileOut)
> j'ai ajouté cet accolade avant de faire free(dataTabString);
> C'est çà ?
Non, tu as dû mal copier-coller : je viens de re-tester, il ne manque
pas d'accolade. Mais si tu as corrigé et que ça compile, ça va..
> - Comme indication, le fichier d'entrée test.txt est construit selon
> le format suivant:
> fprintf("%10d%sn", sNum,sAttrib);
> Donc, je ne sais pas pourquoi vous mettez sNum comme chaine de
> caractère et de taille 6 et sAttrib de taille 32
> char sNum[6]; et char sAttrib[32]; ?
C'est par rapport à ton fichier d'exemple que j'ai copié-collé:
1 110101
...
=> il y a 6 caractères pour ton Num
Mais c'est à toi de décider du format et donc de changer ce que tu ve ux.
> Je ne sais pas pourquoi l'objet 10 lui manque un caractère 1 pour son
> attribut.
> c-à-d pour l'objet 10 on doit obtenir "1011"
Parce que tu n'as pas mis de retour chariot après la dernière ligne.
> - J'ai remarqué que votre dernier programme permet de supprimer des
> colonnes mais aussi des lignes vides.
> Comment vous avez supprimé des lignes vides par ce dernier programme ?
Tu le vois en lisant le code lors de la création du 2nd fichier, par la
ligne de test:
if (strcspn (dataTabString[j].sAttrib, "1") <
strlen(dataTabString[j].sAttrib))
Je teste juste s'il y a au moins un "1" dans l'attribut. Si c'est le
cas, on écrit la ligne
programmation wrote:
> - Il manque un accolade fermant qui correspondant à l'accolade ouv ert
> de if (pFile && pFileOut)
> j'ai ajouté cet accolade avant de faire free(dataTabString);
> C'est çà ?
Non, tu as dû mal copier-coller : je viens de re-tester, il ne manque
pas d'accolade. Mais si tu as corrigé et que ça compile, ça va..
> - Comme indication, le fichier d'entrée test.txt est construit selon
> le format suivant:
> fprintf("%10d%sn", sNum,sAttrib);
> Donc, je ne sais pas pourquoi vous mettez sNum comme chaine de
> caractère et de taille 6 et sAttrib de taille 32
> char sNum[6]; et char sAttrib[32]; ?
C'est par rapport à ton fichier d'exemple que j'ai copié-collé:
1 110101
...
=> il y a 6 caractères pour ton Num
Mais c'est à toi de décider du format et donc de changer ce que tu ve ux.
> Je ne sais pas pourquoi l'objet 10 lui manque un caractère 1 pour son
> attribut.
> c-à-d pour l'objet 10 on doit obtenir "1011"
Parce que tu n'as pas mis de retour chariot après la dernière ligne.
> - J'ai remarqué que votre dernier programme permet de supprimer des
> colonnes mais aussi des lignes vides.
> Comment vous avez supprimé des lignes vides par ce dernier programme ?
Tu le vois en lisant le code lors de la création du 2nd fichier, par la
ligne de test:
if (strcspn (dataTabString[j].sAttrib, "1") <
strlen(dataTabString[j].sAttrib))
Je teste juste s'il y a au moins un "1" dans l'attribut. Si c'est le
cas, on écrit la ligne