PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Passez un nom de fichier en variable globale
Passez un nom de fichier en variable globale
Débuté par ( Alliances-Informat, 23 mai 2024 14:10 - 5 réponses
Membre enregistré
11 messages
Posté le 23 mai 2024 - 14:10
Bonjour à tous,
je voudrais déclarer une variable "fichier" et la récupérer pour la passer en paramètre.
WinDev me retourne que la variable "fichier" n'est pas possible !
Une idée ?

D'avance merci
PROCÉDURE VerifierFichierEtOuvrirFenetre(gsFenetreCreation) <métier>

SI PAS HFichierExiste(gsFichierEnCours) ALORS
Info("Le fichier n'existe pas.")
Ouvre(gsFenetreCreation)
RETOUR
FIN

// Ouvre le fichier en mode lecture
nHandle est un entier = fOuvre(gsFichierEnCours, foLecture)

// Vérifie si le fichier est vide
SI fTaille(gsFichierEnCours) = 0 ALORS
// Ferme le fichier
fFerme(nHandle)
// Ouvre la fenêtre de création d'un nouvel enregistrement
Ouvre(gsFenetreCreation)
SINON
// Ferme le fichier
fFerme(nHandle)
Info("Le fichier n'est pas vide.")
FIN

--
Robert
Membre enregistré
1 365 messages
Posté le 23 mai 2024 - 14:58
sMonFichier est une chaîne UNICODE

sMonFichier = CLIENT..nom
gsFenetreCreation est une chaîne UNICODE = Fen_AOuvrir..nom
VerifierFichierEtOuvrirFenetre(gsFenetreCreation, sMonFichier )


--
Bertin CARRIERE
SRL RGPD.Zen-Project.be
support@zen-project.be
www.zen-project.be www.linkedin.com/in/bertincarriere

+32(0)498/10.18.58
Co-President de l'asbl Be-Dev Association des développeurs Windev de Belgique
www.be-dev.be
Membre enregistré
11 messages
Posté le 23 mai 2024 - 17:18
Un grand merci pour votre aide !
Robert

--
Robert
Membre enregistré
11 messages
Posté le 23 mai 2024 - 19:07
En fait non ... ça bloque même en changeant la variable en chaine unicode ...






Cordialement

--
Robert
Membre enregistré
3 450 messages
Posté le 23 mai 2024 - 19:15
Salut
Je pense que le problème vient du fait que ta fonction
VerifierFichierEtOuvrirFenetre attend un nom de fenêtre
Alors que tu met un nom de fichier.
Membre enregistré
4 111 messages
Posté le 23 mai 2024 - 20:58
Bonjour,
Il manque en effet un paramètre dans la déclaration de la fonction. Qui plus est, dans la mesure ou tu ne types pas ton premier paramètre, il le cast avec le type chaine et utilise le type du projet défini dans l'onglet UNICODE du projet.
A moins que MonFichier.IDCellier ne soit le nom d'un fichier, HFichierExiste(gsFichierEnCours) va renvoyer Faux
Par ailleurs tu utilises des variables globales, pourquoi les passer en paramètre ?
Enfin si l'on se réfère à ton code, que l'on doit deviner car tu ne l'a pas balisé, ta manière de vérifier la vacuité d'une table est pour le moins "révolutionnaire" et peut te renvoyer un résultat erronés si ta table comporte des tuples supprimés ou rayés.
Il serait plus judicieux d'utiliser HNbEnr.

--
Il y a peut être plus simple, mais, ça tourne