Vous n'êtes pas identifié.
Voila, j'ai quelques questions, plus en rapport avec la programmation pour pc, mais bon :
- tout d'abord, j'aimerais savoir s'il y a moyen de récupérer ou modifier la position du pointeur de fichier, qui défini la position actuelle du "curseur" pour lire ou écrire des données dans un fichier. Si oui, j'aimerais savoir comment.
- Je n'avais jamais eu à utiliser les tableaux de pointeurs auparavant, mais aujourd'hui si et j'ai un petit problème. En fait je ne sais pas si ce que je vais demander est possible. Imaginons que j'ai la variable et la fonction suivante :
unsigned char tab[10][25]={0}; void testpointer(unsigned char* receive_adr_tab[]) { ........... } void main() { testpointer( /* tab */ ); }
Mon problème est que je ne trouve pas l'argument à appliquer à testpointer
- Pour finir, j'aimerais savoir comment peut-on faire pour chercher des dossiers.
merci de me répondre.
Hors ligne
facile ! tu met "tab" et je crois que c bon !
Car tab est un pointeur dirigé vers le debut du tableau ( un pointeur du type 2 dimension pour le C) et ton argument doit etre un tableau a 2 dimension !! ( le '*' + les '[]') dc suffit de mettre le nom du tab et c bon !
Hors ligne
ben non...
c pô si facile, sinon j'aurais pas mis ce post... moi aussi c'est ce que je pensais car l'argument tab se traduit normalement par &tab[0][0], mais ça me met "suspicious pointer conversion"...
Hors ligne
Essaye ça:
unsigned char tab[10][25]; void testpointer(unsigned char receive_adr_tab[][25]) { ........... } void main() { testpointer( tab ); }
Hors ligne
oui cela marche (normal)...
mais cette méthode n'utilise pas les pointeurs, dont j'ai besoin pour cette fonction. :cry:
Hors ligne
pour ton histoire de curseur, j'utilise FSEEK(...) pour les fichers texte !
ca place ton curseur à l'octet de ton choix dans ton fichier.
Hors ligne
ah merci...
c'est une fonction que je ne conaissais pas...
Et sinon, pour la recherche de dossier ??
Hors ligne
regarde les sources de dirxplor (d 'ailleurs je crois que superna a fait un exemple sur son site www.na-prod.com) cependant j' aime pas trop sa méthode car elle regarde l' intégralité d' un lecteur ( bon c déjà pas mal ms ca limite l' utilisation des dossiers je trouve) donc c a toi de voir
Hors ligne
oui mais divxplor n'utilise pas les dossiers? si...
Bon je vais voir...
Hors ligne
Ben il lit ce qui a dans les dossiers mais affiche tout le contenu ensemble :
dossier avec lecteur...
Hors ligne
oui cela marche (normal)...
mais cette méthode n'utilise pas les pointeurs, dont j'ai besoin pour cette fonction. :cry:
Comment ça ? Explique je ne comprend pas ton problème... tab EST un pointeur !
Hors ligne
oui d'accord...
mais je ne veux pas qu'une nouvelle variable à une nouvelle adresse soit créée ( ici receive_adr_tab)...
En bref, il faut que quand je modifie receive_adr_tab, tab le soit aussi par la meme occasion
Hors ligne
sinon...
j'ai compris pour les dossiers...
hum...g déjà du essayer pour &tab mais je vais quand meme recommencer, on ne sait jamais
Hors ligne
Mais tab est un pointeur!!! Le tableau est le même, il n'y a que les structures qui peuvent être transmises entièrement en langage C... C'est le pointeur que tu transmet pas le tableau tout entier.
Genre tu peux accèder à la case tab[5][15] de cette façon *(char *)((int)tab + 5*25 + 15).
si tu fait &tab ça ne changera rien car le pointeur tab est statique dans la mémoire tu ne peux donc pas avoir l'adresse du pointeur tab! tab==&tab.
D'ailleur demander &tab est une faute dans ce cas le compilateur ne devrait pas l'accepter...
Réfléchis un peu, regarde comment est déclarée receive_adr_tab:
unsigned char receive_adr_tab[][25]
Quelle peut être la taille du tableau ? le [][25] n'est là que pour dire au compilateur ce qu'il doit faire lorsque par exemple tu faits receive_adr_tab[2][5] : il a besoin de savoir combien il y a de case dans la 2ème dimension car lui ce qu'il va faire c'est receive_adr_tab[2*25 +5].
Un tableau en C est toujours un pointeur qui indique une adresse memoire réservée pour tout le tableau ce que tu mets entre crochets indique quel indice du tableau tu veux adresser... rapelle toi que la mémoire est linéaire, et non multidimensionelle.
Voilà j'espère que tu as mieux compris.
Hors ligne
ok...
j'avais déjà plus ou moins compris ce que tu viens de m'expiquer mais maintenant c'est beaucoup plus clair.
Je vais maintenant déclarer une structure plutôt qu'un tableau
Hors ligne
dirxplor utilise les fonctiuons d eercherche de fichiers, utilise les fts que j'ai pris sous tc3,
pour voir les dossiers, tres simple, il suffit de changer le dir courant au dir que tu veut (ex c: ou c:windows ) et de lister les fichiers dedans
regarde les fts DIRENT.h dans le Msdn (je crois que c'est une ft Dos ça )
Hors ligne
Pourquoi veux-tu déclarer une structure ? Pour ce que tu a l'air de vouloir faire un tableau c'est mieux enfin tout dépend de ton organisation, mais si tu fait une structure pense à la transmettre par adresse si elle est en argument d'une fonction sinon cette fois-ci le compilateur enverra une copie de la structure... (c'est beaucoup plus lent et prend plus de mémoire).
Hors ligne
lol (c tout ce ke j'ai trouve sur le moment !)
Hors ligne
si si...
finallement je vais avoir besoin d'une structure car je vais devoir utiliser les listes liées en c++, donc obligation de passer par une structure...
Hors ligne