Un fichier en paramètre

cs_Kronk Messages postés 6 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 1 août 2003 - 21 mai 2003 à 17:07
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 22 mai 2003 à 13:34
Bonjour,

J'ai besoin de créer une fonction qui reçoit en paramètre la source d'un fichier HTML.

Je ne sais pas dans quoi je pourrais stocker autant d'infos (ce n'est évidement pas gérable avec un string) pour ensuite pouvoir traiter certaines parties du fichier. (suppression d'une partie des chaines de caractères).

Merci de votre aide

11 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 mai 2003 à 17:25
HANDLE hfl = CreateFile(...);
HANDLE hheap = GetProcessHeap();
DWORD d, len;
len = GetFileSize(hfl, 0);
char *pmem = (char*) HeapAlloc(hheap, 0, len+1);
dans pmem ira tres bien.
BruNews, ciao...
0
cs_Kronk Messages postés 6 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 1 août 2003
21 mai 2003 à 17:39
Je te remercie pour ce petit bout de code, mais pourrais tu me le commenter un peu, je pige pas tout...
(qu'est ce que c'est que HANDLE ? et DWORD ?)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 mai 2003 à 17:57
Avant tout, ton prog est bien pour win32 ???
que je me burne pas pour rien.
BruNews, ciao...
0
cs_Kronk Messages postés 6 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 1 août 2003
21 mai 2003 à 19:45
Si Win32 = Windows, alors oui, sinon ne sais pas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 mai 2003 à 20:01
ben commenter serait long. Ce sont des types definis par Windows. Les fonctions sont celles du systeme (API).
Tu veux une fonction qui retourne un bloc char* alloue DANS la fonction ? ok ?
char* __stdcall OctetsFichier(char *pszfile);
irait ?
BruNews, ciao...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 mai 2003 à 20:16
char* __stdcall OctetsFichier(char *pszfile)
{
HANDLE hfl, hheap;
DWORD len, val;
char *pmem = 0;
hfl = CreateFile(pszfile, GENERIC_READ, 0, 0,
OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, 0);
if(hfl == INVALID_HANDLE_VALUE) return 0;
len = GetFileSize(hfl, 0);
if(!len || (len == 0xFFFFFFFF)) goto closeFL;
hheap = GetProcessHeap(); if((pmem (char*) HeapAlloc(hheap, 0, len+1)) 0) goto closeFL;
val = 0; ReadFile(hfl, pmem, len, &val, 0); if(val len) {pmem[len] 0; goto closeFL;} // tout OK
HeapFree(hheap, 0, pmem); pmem = 0;
closeFL:
CloseHandle(hfl);
return pmem;
}
retourne char* , string avec zero final si OK, sinon retourne 0.
Faudra appeler ensuite:
HeapFree(GetProcessHeap(), 0, pmem);
quand tu auras fini avec pointeur retourné.

BruNews, ciao...
0
cs_Kronk Messages postés 6 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 1 août 2003
22 mai 2003 à 11:54
Je te remercie pour ton aide, mais je n'y pige rien.

En fait je suis sensé mettre ma fonction dans une dll qui sera ensuite appelée par PowerBuilder. Je ne sais donc pas si je dois me servir de Win32, en tout cas je n'ai aucune idée de la manière dont on l'utilise.

N'y aurait-il pas une solution pour récupérer une page HTML en C classique ? Comme un buffer par exemple ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 mai 2003 à 12:03
tu dois bien savoir la plateforme cible du prog, c'est le minimum. Si est Linux evidemment pas de win32 sinon tu colles ma func dans ta dll avec OctetsFichier dans un def et c'est vendu.
BruNews, ciao...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 mai 2003 à 12:07
ah oui au fait, si dll alors EST win32.
Y aura autre chose dans ta dll ?
Si est NON je te la fais en 3 Ko maxi.
BruNews, ciao...
0
cs_Kronk Messages postés 6 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 1 août 2003
22 mai 2003 à 13:28
En effet c'est bien pour Windows et il n'y aura rien d'autre à mettre dedans...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 mai 2003 à 13:34
Alors poste moi un message par le site avec adresse mail pour te retourner dll, lib et h.
BruNews, ciao...
0
Rejoignez-nous