char *buffer=new[_buffer_len_];
int fp=open("mon_fichier",O_RDWR,S_IREAD|S_IWRITE);
read(fp,buffer,_buffer_len_);
ALORS ? QUELQU'UN PEUT-IL M'AIDER ??
char *buffer=new[_buffer_len_];
int fp=open("mon_fichier",O_RDWR,S_IREAD|S_IWRITE);
read(fp,buffer,_buffer_len_);
ALORS ? QUELQU'UN PEUT-IL M'AIDER ??
char *buffer=new[_buffer_len_];
int fp=open("mon_fichier",O_RDWR,S_IREAD|S_IWRITE);
read(fp,buffer,_buffer_len_);
ALORS ? QUELQU'UN PEUT-IL M'AIDER ??
On Sat, 01 Nov 2003 23:33:50 +0100, david wrote:char *buffer=new[_buffer_len_];
Uh ?
int fp=open("mon_fichier",O_RDWR,S_IREAD|S_IWRITE);
read(fp,buffer,_buffer_len_);
Les fonctions open et read ne font (il me semble) pas partie du
langage C++. En d'autres termes, il n'est pas choquant qu'elles
donnent des résultats différents suivant le système.
D'autre part, ce genre de techniques (tableau d'octets alloué à la
main) est plus du ressort de fr.comp.lang.c. En C++, une chaîne de
caractères s'écrit std::string. Cf n'importe quel bon bouquin de C++.
En prime, évite les identifiants commençant par "_" : une bonne partie
de ces indentifiants est réservée à l'implémenteur de la bibliothèque
standard (mais j'ai malheureusement oublié lesquels exactement :-/ ).
ALORS ? QUELQU'UN PEUT-IL M'AIDER ??
Ne crie pas ! :-<<<
On Sat, 01 Nov 2003 23:33:50 +0100, david <nobody@free.fr> wrote:
char *buffer=new[_buffer_len_];
Uh ?
int fp=open("mon_fichier",O_RDWR,S_IREAD|S_IWRITE);
read(fp,buffer,_buffer_len_);
Les fonctions open et read ne font (il me semble) pas partie du
langage C++. En d'autres termes, il n'est pas choquant qu'elles
donnent des résultats différents suivant le système.
D'autre part, ce genre de techniques (tableau d'octets alloué à la
main) est plus du ressort de fr.comp.lang.c. En C++, une chaîne de
caractères s'écrit std::string. Cf n'importe quel bon bouquin de C++.
En prime, évite les identifiants commençant par "_" : une bonne partie
de ces indentifiants est réservée à l'implémenteur de la bibliothèque
standard (mais j'ai malheureusement oublié lesquels exactement :-/ ).
ALORS ? QUELQU'UN PEUT-IL M'AIDER ??
Ne crie pas ! :-<<<
On Sat, 01 Nov 2003 23:33:50 +0100, david wrote:char *buffer=new[_buffer_len_];
Uh ?
int fp=open("mon_fichier",O_RDWR,S_IREAD|S_IWRITE);
read(fp,buffer,_buffer_len_);
Les fonctions open et read ne font (il me semble) pas partie du
langage C++. En d'autres termes, il n'est pas choquant qu'elles
donnent des résultats différents suivant le système.
D'autre part, ce genre de techniques (tableau d'octets alloué à la
main) est plus du ressort de fr.comp.lang.c. En C++, une chaîne de
caractères s'écrit std::string. Cf n'importe quel bon bouquin de C++.
En prime, évite les identifiants commençant par "_" : une bonne partie
de ces indentifiants est réservée à l'implémenteur de la bibliothèque
standard (mais j'ai malheureusement oublié lesquels exactement :-/ ).
ALORS ? QUELQU'UN PEUT-IL M'AIDER ??
Ne crie pas ! :-<<<
Fabien LE LEZ wrote:On Sat, 01 Nov 2003 23:33:50 +0100, david wrote:
D'autre part, ce genre de techniques (tableau d'octets alloué à la
main) est plus du ressort de fr.comp.lang.c. En C++, une chaîne de
caractères s'écrit std::string. Cf n'importe quel bon bouquin de C++.
si je ne fais pas avec, c'est que j'ai mes raisons et elles sont
suffisement bonnes, merci.
En prime, évite les identifiants commençant par "_" : une bonne partie
de ces indentifiants est réservée à l'implémenteur de la bibliothèque
standard (mais j'ai malheureusement oublié lesquels exactement :-/ ).
mais ça n'a rien à voir avec mon pbm !!
(...et la culture c'est comme la confiture, moins on en a et plus on
l'etale)
Fabien LE LEZ wrote:
On Sat, 01 Nov 2003 23:33:50 +0100, david <nobody@free.fr> wrote:
D'autre part, ce genre de techniques (tableau d'octets alloué à la
main) est plus du ressort de fr.comp.lang.c. En C++, une chaîne de
caractères s'écrit std::string. Cf n'importe quel bon bouquin de C++.
si je ne fais pas avec, c'est que j'ai mes raisons et elles sont
suffisement bonnes, merci.
En prime, évite les identifiants commençant par "_" : une bonne partie
de ces indentifiants est réservée à l'implémenteur de la bibliothèque
standard (mais j'ai malheureusement oublié lesquels exactement :-/ ).
mais ça n'a rien à voir avec mon pbm !!
(...et la culture c'est comme la confiture, moins on en a et plus on
l'etale)
Fabien LE LEZ wrote:On Sat, 01 Nov 2003 23:33:50 +0100, david wrote:
D'autre part, ce genre de techniques (tableau d'octets alloué à la
main) est plus du ressort de fr.comp.lang.c. En C++, une chaîne de
caractères s'écrit std::string. Cf n'importe quel bon bouquin de C++.
si je ne fais pas avec, c'est que j'ai mes raisons et elles sont
suffisement bonnes, merci.
En prime, évite les identifiants commençant par "_" : une bonne partie
de ces indentifiants est réservée à l'implémenteur de la bibliothèque
standard (mais j'ai malheureusement oublié lesquels exactement :-/ ).
mais ça n'a rien à voir avec mon pbm !!
(...et la culture c'est comme la confiture, moins on en a et plus on
l'etale)
Fabien LE LEZ wrote:On Sat, 01 Nov 2003 23:33:50 +0100, david wrote:
D'autre part, ce genre de techniques (tableau d'octets alloué à la
main) est plus du ressort de fr.comp.lang.c. En C++, une chaîne de
caractères s'écrit std::string. Cf n'importe quel bon bouquin de C++.
si je ne fais pas avec, c'est que j'ai mes raisons et elles sont
suffisement bonnes, merci.
Alors dans ce cas : news:fr.comp.lang.c
Si tu veux qu'on puisse t'aider, ici il faut "parler C++"...En prime, évite les identifiants commençant par "_" : une bonne partie
de ces indentifiants est réservée à l'implémenteur de la bibliothèque
standard (mais j'ai malheureusement oublié lesquels exactement :-/ ).
mais ça n'a rien à voir avec mon pbm !!
(...et la culture c'est comme la confiture, moins on en a et plus on
l'etale)
Non, c'est à peu près le seul rapport avec C++ que Fabien a trouvé dans
ton message. Et encore, il faut bien chercher !
Vincent
Fabien LE LEZ wrote:
On Sat, 01 Nov 2003 23:33:50 +0100, david <nobody@free.fr> wrote:
D'autre part, ce genre de techniques (tableau d'octets alloué à la
main) est plus du ressort de fr.comp.lang.c. En C++, une chaîne de
caractères s'écrit std::string. Cf n'importe quel bon bouquin de C++.
si je ne fais pas avec, c'est que j'ai mes raisons et elles sont
suffisement bonnes, merci.
Alors dans ce cas : news:fr.comp.lang.c
Si tu veux qu'on puisse t'aider, ici il faut "parler C++"...
En prime, évite les identifiants commençant par "_" : une bonne partie
de ces indentifiants est réservée à l'implémenteur de la bibliothèque
standard (mais j'ai malheureusement oublié lesquels exactement :-/ ).
mais ça n'a rien à voir avec mon pbm !!
(...et la culture c'est comme la confiture, moins on en a et plus on
l'etale)
Non, c'est à peu près le seul rapport avec C++ que Fabien a trouvé dans
ton message. Et encore, il faut bien chercher !
Vincent
Fabien LE LEZ wrote:On Sat, 01 Nov 2003 23:33:50 +0100, david wrote:
D'autre part, ce genre de techniques (tableau d'octets alloué à la
main) est plus du ressort de fr.comp.lang.c. En C++, une chaîne de
caractères s'écrit std::string. Cf n'importe quel bon bouquin de C++.
si je ne fais pas avec, c'est que j'ai mes raisons et elles sont
suffisement bonnes, merci.
Alors dans ce cas : news:fr.comp.lang.c
Si tu veux qu'on puisse t'aider, ici il faut "parler C++"...En prime, évite les identifiants commençant par "_" : une bonne partie
de ces indentifiants est réservée à l'implémenteur de la bibliothèque
standard (mais j'ai malheureusement oublié lesquels exactement :-/ ).
mais ça n'a rien à voir avec mon pbm !!
(...et la culture c'est comme la confiture, moins on en a et plus on
l'etale)
Non, c'est à peu près le seul rapport avec C++ que Fabien a trouvé dans
ton message. Et encore, il faut bien chercher !
Vincent
sorry, mais le code que j'ai fourni est du C++, ça n'est certes pas du
C++ typique (tableau de char, open() & compagnie)
mais si les tableau de char existent encore sous C++, c'est pas pour
faire joli. Et ne t'en déplaise, si tout cela est encore là, c'est juste
parce que cela sert.
sorry, mais le code que j'ai fourni est du C++, ça n'est certes pas du
C++ typique (tableau de char, open() & compagnie)
mais si les tableau de char existent encore sous C++, c'est pas pour
faire joli. Et ne t'en déplaise, si tout cela est encore là, c'est juste
parce que cela sert.
sorry, mais le code que j'ai fourni est du C++, ça n'est certes pas du
C++ typique (tableau de char, open() & compagnie)
mais si les tableau de char existent encore sous C++, c'est pas pour
faire joli. Et ne t'en déplaise, si tout cela est encore là, c'est juste
parce que cela sert.
char *buffer=new[_buffer_len_];
int fp=open("mon_fichier",O_RDWR,S_IREAD|S_IWRITE);
read(fp,buffer,_buffer_len_);
for (int i=0; i<_buffer_len_; i++)
{
if (buffer[i]=='') buffer[i]='$';
}
write(fp,buffer,_buffer_len_);
close(fp);
delete[] buffer;
voila, je n'ai pas remplacé les par des , les par des $.
et ça ne marche pas... aucune occurence de n'est trouvée
char *buffer=new[_buffer_len_];
int fp=open("mon_fichier",O_RDWR,S_IREAD|S_IWRITE);
read(fp,buffer,_buffer_len_);
for (int i=0; i<_buffer_len_; i++)
{
if (buffer[i]=='\') buffer[i]='$';
}
write(fp,buffer,_buffer_len_);
close(fp);
delete[] buffer;
voila, je n'ai pas remplacé les par des \, les par des $.
et ça ne marche pas... aucune occurence de n'est trouvée
char *buffer=new[_buffer_len_];
int fp=open("mon_fichier",O_RDWR,S_IREAD|S_IWRITE);
read(fp,buffer,_buffer_len_);
for (int i=0; i<_buffer_len_; i++)
{
if (buffer[i]=='') buffer[i]='$';
}
write(fp,buffer,_buffer_len_);
close(fp);
delete[] buffer;
voila, je n'ai pas remplacé les par des , les par des $.
et ça ne marche pas... aucune occurence de n'est trouvée
je suis en train de développer un ptit programme (rudimentaire) en
C++ de compression de données. Je l'ai d'abord ecrit sous ouindoz et
aujourd'hui, je l'ai porté sous ... LINUX (ouais, yeepeee !!)
read(fp,buffer,_buffer_len_);
for (int i=0; i<_buffer_len_; i++)
{
if (buffer[i]=='') buffer[i]='$';
}
write(fp,buffer,_buffer_len_);
je suis en train de développer un ptit programme (rudimentaire) en
C++ de compression de données. Je l'ai d'abord ecrit sous ouindoz et
aujourd'hui, je l'ai porté sous ... LINUX (ouais, yeepeee !!)
read(fp,buffer,_buffer_len_);
for (int i=0; i<_buffer_len_; i++)
{
if (buffer[i]=='\') buffer[i]='$';
}
write(fp,buffer,_buffer_len_);
je suis en train de développer un ptit programme (rudimentaire) en
C++ de compression de données. Je l'ai d'abord ecrit sous ouindoz et
aujourd'hui, je l'ai porté sous ... LINUX (ouais, yeepeee !!)
read(fp,buffer,_buffer_len_);
for (int i=0; i<_buffer_len_; i++)
{
if (buffer[i]=='') buffer[i]='$';
}
write(fp,buffer,_buffer_len_);
david writes:je suis en train de développer un ptit programme (rudimentaire) en
C++ de compression de données. Je l'ai d'abord ecrit sous ouindoz et
aujourd'hui, je l'ai porté sous ... LINUX (ouais, yeepeee !!)
Donc, copie et suivi sur fr.comp.os.unix, groupe le plus adapte.read(fp,buffer,_buffer_len_);
for (int i=0; i<_buffer_len_; i++)
{
if (buffer[i]=='') buffer[i]='$';
}
write(fp,buffer,_buffer_len_);
Faudrait penser a faire un lseek entre les read et write.
david <nobody@free.fr> writes:
je suis en train de développer un ptit programme (rudimentaire) en
C++ de compression de données. Je l'ai d'abord ecrit sous ouindoz et
aujourd'hui, je l'ai porté sous ... LINUX (ouais, yeepeee !!)
Donc, copie et suivi sur fr.comp.os.unix, groupe le plus adapte.
read(fp,buffer,_buffer_len_);
for (int i=0; i<_buffer_len_; i++)
{
if (buffer[i]=='\') buffer[i]='$';
}
write(fp,buffer,_buffer_len_);
Faudrait penser a faire un lseek entre les read et write.
david writes:je suis en train de développer un ptit programme (rudimentaire) en
C++ de compression de données. Je l'ai d'abord ecrit sous ouindoz et
aujourd'hui, je l'ai porté sous ... LINUX (ouais, yeepeee !!)
Donc, copie et suivi sur fr.comp.os.unix, groupe le plus adapte.read(fp,buffer,_buffer_len_);
for (int i=0; i<_buffer_len_; i++)
{
if (buffer[i]=='') buffer[i]='$';
}
write(fp,buffer,_buffer_len_);
Faudrait penser a faire un lseek entre les read et write.
Fabien LE LEZ wrote:On Sat, 01 Nov 2003 23:33:50 +0100, david wrote:
D'autre part, ce genre de techniques (tableau d'octets alloué à la
main) est plus du ressort de fr.comp.lang.c. En C++, une chaîne de
caractères s'écrit std::string. Cf n'importe quel bon bouquin de
C++.
si je ne fais pas avec, c'est que j'ai mes raisons et elles sont
suffisement bonnes, merci.
Alors dans ce cas : news:fr.comp.lang.c
Si tu veux qu'on puisse t'aider, ici il faut "parler C++"...
En prime, évite les identifiants commençant par "_" : une bonne
partie de ces indentifiants est réservée à l'implémenteur de la
bibliothèque standard (mais j'ai malheureusement oublié lesquels
exactement :-/ ).
mais ça n'a rien à voir avec mon pbm !!
(...et la culture c'est comme la confiture, moins on en a et plus on
l'etale)
Non, c'est à peu près le seul rapport avec C++ que Fabien a trouvé
dans ton message. Et encore, il faut bien chercher !
Fabien LE LEZ wrote:
On Sat, 01 Nov 2003 23:33:50 +0100, david <nobody@free.fr> wrote:
D'autre part, ce genre de techniques (tableau d'octets alloué à la
main) est plus du ressort de fr.comp.lang.c. En C++, une chaîne de
caractères s'écrit std::string. Cf n'importe quel bon bouquin de
C++.
si je ne fais pas avec, c'est que j'ai mes raisons et elles sont
suffisement bonnes, merci.
Alors dans ce cas : news:fr.comp.lang.c
Si tu veux qu'on puisse t'aider, ici il faut "parler C++"...
En prime, évite les identifiants commençant par "_" : une bonne
partie de ces indentifiants est réservée à l'implémenteur de la
bibliothèque standard (mais j'ai malheureusement oublié lesquels
exactement :-/ ).
mais ça n'a rien à voir avec mon pbm !!
(...et la culture c'est comme la confiture, moins on en a et plus on
l'etale)
Non, c'est à peu près le seul rapport avec C++ que Fabien a trouvé
dans ton message. Et encore, il faut bien chercher !
Fabien LE LEZ wrote:On Sat, 01 Nov 2003 23:33:50 +0100, david wrote:
D'autre part, ce genre de techniques (tableau d'octets alloué à la
main) est plus du ressort de fr.comp.lang.c. En C++, une chaîne de
caractères s'écrit std::string. Cf n'importe quel bon bouquin de
C++.
si je ne fais pas avec, c'est que j'ai mes raisons et elles sont
suffisement bonnes, merci.
Alors dans ce cas : news:fr.comp.lang.c
Si tu veux qu'on puisse t'aider, ici il faut "parler C++"...
En prime, évite les identifiants commençant par "_" : une bonne
partie de ces indentifiants est réservée à l'implémenteur de la
bibliothèque standard (mais j'ai malheureusement oublié lesquels
exactement :-/ ).
mais ça n'a rien à voir avec mon pbm !!
(...et la culture c'est comme la confiture, moins on en a et plus on
l'etale)
Non, c'est à peu près le seul rapport avec C++ que Fabien a trouvé
dans ton message. Et encore, il faut bien chercher !
sorry, mais le code que j'ai fourni est du C++, ça n'est certes pas
du C++ typique (tableau de char, open() & compagnie)
mais si les tableau de char existent encore sous C++, c'est pas pour
faire joli. Et ne t'en déplaise, si tout cela est encore là, c'est
juste parce que cela sert.
Si tu utilisais vraiment toutes les possibilités de C++, tu n'aurais
pas à t'embêter avec ces tableaux de 'char'.
Les tableaux de 'char' (et d'autres types) sont des fonctionnalités de
bas niveau que tu ne devrais pas utiliser (elles sont utilisées, entre
autres, par la bibliothèque standard (STL) pour proposer des objets de
plus haut niveau comme std::string, std::vector, etc...).
Maintenant, si tu tiens absolument à programmer comme on le ferait en
C, je te suggère le groupe news:fr.comp.lang.c ...
Tu peux t'inspirer de ce code pour une solution à ton problème (copie
d'un précédent message que j'avais écrit (avec une petite adaptation) :
[ référence : <3ecaae63$0$4628$ ]
#include <string>
#include <fstream>
#include <iostream>
#include <string>
int main()
{
const std::string filename = "/chemin/fichier";
// Ouverture du fichier
std::ifstream inFile(filename.c_str());
if (!inFile)
{
// Traitement de l'erreur d'ouverture...
}
else
{
// Lecture du contenu
std::string data;
std::copy(std::istreambuf_iterator<std::string::value_type>(inFile),
std::istreambuf_iterator<std::string::value_type>(),
std::back_inserter(data));
// Fermeture du fichier
inFile.close();
// Remplacement
const std::string find = ""; // on cherche ''
const std::string replace = "\"; // on remplace par ''
std::string::size_type i = 0;
for ( ; (i = data.find(find, i)) != std::string::npos ; )
{
data.replace(i, find.length(), replace);
i += replace.length();
}
// Ouverture du fichier en écriture
std::ofstream outFile(filename.c_str());
if (!outFile)
{
// Traitement de l'erreur d'ouverture...
}
else
{
// Ecriture des nouvelles données
std::copy(data.begin(), data.end(),
std::ostreambuf_iterator<std::string::value_type>(outFile));
// Fermeture du fichier
outFile.close();
}
}
}
sorry, mais le code que j'ai fourni est du C++, ça n'est certes pas
du C++ typique (tableau de char, open() & compagnie)
mais si les tableau de char existent encore sous C++, c'est pas pour
faire joli. Et ne t'en déplaise, si tout cela est encore là, c'est
juste parce que cela sert.
Si tu utilisais vraiment toutes les possibilités de C++, tu n'aurais
pas à t'embêter avec ces tableaux de 'char'.
Les tableaux de 'char' (et d'autres types) sont des fonctionnalités de
bas niveau que tu ne devrais pas utiliser (elles sont utilisées, entre
autres, par la bibliothèque standard (STL) pour proposer des objets de
plus haut niveau comme std::string, std::vector, etc...).
Maintenant, si tu tiens absolument à programmer comme on le ferait en
C, je te suggère le groupe news:fr.comp.lang.c ...
Tu peux t'inspirer de ce code pour une solution à ton problème (copie
d'un précédent message que j'avais écrit (avec une petite adaptation) :
[ référence : <3ecaae63$0$4628$626a54ce@news.free.fr> ]
#include <string>
#include <fstream>
#include <iostream>
#include <string>
int main()
{
const std::string filename = "/chemin/fichier";
// Ouverture du fichier
std::ifstream inFile(filename.c_str());
if (!inFile)
{
// Traitement de l'erreur d'ouverture...
}
else
{
// Lecture du contenu
std::string data;
std::copy(std::istreambuf_iterator<std::string::value_type>(inFile),
std::istreambuf_iterator<std::string::value_type>(),
std::back_inserter(data));
// Fermeture du fichier
inFile.close();
// Remplacement
const std::string find = "\"; // on cherche ''
const std::string replace = "\\"; // on remplace par '\'
std::string::size_type i = 0;
for ( ; (i = data.find(find, i)) != std::string::npos ; )
{
data.replace(i, find.length(), replace);
i += replace.length();
}
// Ouverture du fichier en écriture
std::ofstream outFile(filename.c_str());
if (!outFile)
{
// Traitement de l'erreur d'ouverture...
}
else
{
// Ecriture des nouvelles données
std::copy(data.begin(), data.end(),
std::ostreambuf_iterator<std::string::value_type>(outFile));
// Fermeture du fichier
outFile.close();
}
}
}
sorry, mais le code que j'ai fourni est du C++, ça n'est certes pas
du C++ typique (tableau de char, open() & compagnie)
mais si les tableau de char existent encore sous C++, c'est pas pour
faire joli. Et ne t'en déplaise, si tout cela est encore là, c'est
juste parce que cela sert.
Si tu utilisais vraiment toutes les possibilités de C++, tu n'aurais
pas à t'embêter avec ces tableaux de 'char'.
Les tableaux de 'char' (et d'autres types) sont des fonctionnalités de
bas niveau que tu ne devrais pas utiliser (elles sont utilisées, entre
autres, par la bibliothèque standard (STL) pour proposer des objets de
plus haut niveau comme std::string, std::vector, etc...).
Maintenant, si tu tiens absolument à programmer comme on le ferait en
C, je te suggère le groupe news:fr.comp.lang.c ...
Tu peux t'inspirer de ce code pour une solution à ton problème (copie
d'un précédent message que j'avais écrit (avec une petite adaptation) :
[ référence : <3ecaae63$0$4628$ ]
#include <string>
#include <fstream>
#include <iostream>
#include <string>
int main()
{
const std::string filename = "/chemin/fichier";
// Ouverture du fichier
std::ifstream inFile(filename.c_str());
if (!inFile)
{
// Traitement de l'erreur d'ouverture...
}
else
{
// Lecture du contenu
std::string data;
std::copy(std::istreambuf_iterator<std::string::value_type>(inFile),
std::istreambuf_iterator<std::string::value_type>(),
std::back_inserter(data));
// Fermeture du fichier
inFile.close();
// Remplacement
const std::string find = ""; // on cherche ''
const std::string replace = "\"; // on remplace par ''
std::string::size_type i = 0;
for ( ; (i = data.find(find, i)) != std::string::npos ; )
{
data.replace(i, find.length(), replace);
i += replace.length();
}
// Ouverture du fichier en écriture
std::ofstream outFile(filename.c_str());
if (!outFile)
{
// Traitement de l'erreur d'ouverture...
}
else
{
// Ecriture des nouvelles données
std::copy(data.begin(), data.end(),
std::ostreambuf_iterator<std::string::value_type>(outFile));
// Fermeture du fichier
outFile.close();
}
}
}