OVH Cloud OVH Cloud

[VC++6.0] CString & InternetOpen

6 réponses
Avatar
MrHanky
Bonjour,

J'utilise les fonctions suivantes pour telecharger des fichiers en .txt
.info ou .*** ils sont tous sans exception en ascii mais le pb c'est que je
ne peux pas savoir a l'avance si c'est un fichier Unix ou Dos, donc quand
j'affiche le contenu dans un CEdit par exemple, une fois sur deux j'ai
n'importe quoi.

Pseudo code:

CString s;

h = InternetOpen("Rien",INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
http = InternetOpenUrl(h,"http Path",NULL,0,0,0);
InternetReadFile(http,s.Buffer,sizeof,&byteread);
m_machaine = s;

UpdateData(FALSE);

Ma question est : Y-a-t-il moyen d'avoir directement le texte telechargé
en ascii de type dos ? Sinon, existe-t-il une fonction permettant de
convertir un fichier en format dos ? Et surtout comment voir quel type de
fichier je telecharge ! Unix ? Dos ? Binaire ? Ascii ?

Merci d'avance a tous.

Mr Hanky

6 réponses

Avatar
Thierry
Bonjour,

MrHanky a écrit :

Ma question est : Y-a-t-il moyen d'avoir directement le texte
telechargé
en ascii de type dos ? Sinon, existe-t-il une fonction permettant de
convertir un fichier en format dos ? Et surtout comment voir quel type
de fichier je telecharge ! Unix ? Dos ? Binaire ? Ascii ?



Les fins de lignes sont différentes (0x0d0x0A pour "Dos").

--
"MOI JE VEUX JOUER DE L'HELICON (PON PON PON PON)"
Avatar
MrHanky
bravo ! peux-tu repondre a ma question maintenant ?

"Thierry" a écrit dans le message de
news:
Bonjour,

MrHanky a écrit :

> Ma question est : Y-a-t-il moyen d'avoir directement le texte
> telechargé
> en ascii de type dos ? Sinon, existe-t-il une fonction permettant de
> convertir un fichier en format dos ? Et surtout comment voir quel type
> de fichier je telecharge ! Unix ? Dos ? Binaire ? Ascii ?

Les fins de lignes sont différentes (0x0d0x0A pour "Dos").

--
"MOI JE VEUX JOUER DE L'HELICON (PON PON PON PON)"


Avatar
Thierry
Bonjour,

MrHanky a écrit :

bravo ! peux-tu repondre a ma question maintenant ?



J'ai repondu a une, quel est ton probleme ?

--
"MOI JE VEUX JOUER DE L'HELICON (PON PON PON PON)"
Avatar
Quentin Pouplard
MrHanky wrote:
Bonjour,

J'utilise les fonctions suivantes pour telecharger des fichiers en
.txt ..info ou .*** ils sont tous sans exception en ascii mais le pb
c'est que je ne peux pas savoir a l'avance si c'est un fichier Unix
ou Dos, donc quand j'affiche le contenu dans un CEdit par exemple,
une fois sur deux j'ai n'importe quoi.

Pseudo code:

CString s;

h = InternetOpen("Rien",INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
http = InternetOpenUrl(h,"http Path",NULL,0,0,0);
InternetReadFile(http,s.Buffer,sizeof,&byteread); m_machaine = s;

UpdateData(FALSE);

Ma question est : Y-a-t-il moyen d'avoir directement le texte
telechargé en ascii de type dos ? Sinon, existe-t-il une fonction
permettant de convertir un fichier en format dos ? Et surtout comment
voir quel type de fichier je telecharge ! Unix ? Dos ? Binaire ?
Ascii ?



note: Windows 9x utilise ANSI pas ASCII, windows NT utilise unicode.

La différence majeure entre unix et windows (et pis y'a aussi macos) est
le retour à la ligne, sous unix: "n", sous windows "rn"... avec de
simple remplacement tu dois pouvoir obtenir toujours l'un ou l'autre
selon tes besoins, par exemple (à optimiser!):

Replace("rn", "n"); // peu importe que ce soit win ou unix, tu auras
du unix.

Ensuite un Replace("n","rn") sur ton string te donnera du "windows".

Sinon, à priori il n'y a pas de façon parfaite de savoir l'encoding
utilisé, je ne sais pas ce que tu charges, mais tu pourras juste obtenir
un best default, sauf si ce que tu charges contient des infos sur
l'encoding... en bref: les encoding ça pue! bonne chance!

ps: que veux-tu dire par "ascii de type DOS"?

--
Quentin Pouplard (Tene/MyOE)
http://www.myoe.org | http://graff.alrj.org
Avatar
MrHanky
Ok, c'est ce que je pensais :(
Ce que j'appelle les ascii dos c'est pour un retour a la ligne : CR puis LF
et pas l'inverse comme sous unix

"Quentin Pouplard" a écrit dans le message de
news:


MrHanky wrote:
> Bonjour,
>
> J'utilise les fonctions suivantes pour telecharger des fichiers en
> .txt ..info ou .*** ils sont tous sans exception en ascii mais le pb
> c'est que je ne peux pas savoir a l'avance si c'est un fichier Unix
> ou Dos, donc quand j'affiche le contenu dans un CEdit par exemple,
> une fois sur deux j'ai n'importe quoi.
>
> Pseudo code:
>
> CString s;
>
> h = InternetOpen("Rien",INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
> http = InternetOpenUrl(h,"http Path",NULL,0,0,0);
> InternetReadFile(http,s.Buffer,sizeof,&byteread); m_machaine = s;
>
> UpdateData(FALSE);
>
> Ma question est : Y-a-t-il moyen d'avoir directement le texte
> telechargé en ascii de type dos ? Sinon, existe-t-il une fonction
> permettant de convertir un fichier en format dos ? Et surtout comment
> voir quel type de fichier je telecharge ! Unix ? Dos ? Binaire ?
> Ascii ?

note: Windows 9x utilise ANSI pas ASCII, windows NT utilise unicode.

La différence majeure entre unix et windows (et pis y'a aussi macos) est
le retour à la ligne, sous unix: "n", sous windows "rn"... avec de
simple remplacement tu dois pouvoir obtenir toujours l'un ou l'autre
selon tes besoins, par exemple (à optimiser!):

Replace("rn", "n"); // peu importe que ce soit win ou unix, tu auras
du unix.

Ensuite un Replace("n","rn") sur ton string te donnera du "windows".

Sinon, à priori il n'y a pas de façon parfaite de savoir l'encoding
utilisé, je ne sais pas ce que tu charges, mais tu pourras juste obtenir
un best default, sauf si ce que tu charges contient des infos sur
l'encoding... en bref: les encoding ça pue! bonne chance!

ps: que veux-tu dire par "ascii de type DOS"?

--
Quentin Pouplard (Tene/MyOE)
http://www.myoe.org | http://graff.alrj.org



Avatar
MrHanky
Oui ! tu as bien repondu, mais c'etait pour dire que j'etais pas si nul que
ca ;-)
Je sais bien que les retour a la ligne ce font avec les ascii 13 suivi de 10
mais je voulais savoir si a partir d'un CString on peut convertir son
contenu en format DOS par exemple. Ou si il faut tout refaire a la main.

"Thierry" a écrit dans le message de
news:
Bonjour,

MrHanky a écrit :

> bravo ! peux-tu repondre a ma question maintenant ?

J'ai repondu a une, quel est ton probleme ?

--
"MOI JE VEUX JOUER DE L'HELICON (PON PON PON PON)"