Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
je souahiate utiliser la fonction FileSize pour lire les fichiers dont la taille est supérieur à 0ko mais cela ne semble pas fonctionner.
Voici un extrait du code :
IF FileSize('\\serveur\test_$(Mois_Moins_1)*') > 0 then
table:
Load *
From [\\serveur\test_$(Mois_Moins_1)*](txt, codepage is 1252, embedded labels, delimiter is ',', msq) WHERE dateTimeConnect>0;
ENDIF
Le script semble lire tous les fichiers quelque soit leur taille !
Si quelqu'un peut m'apporter une explication, je suis preneur.
Merci.
Christian,
Je veux charger uniquement les fichiers "non vides" d'où le test sur la taille.
C'est bon j'ai réussi grâce au code ci-dessous.
SUB ListeFichiers (Root)
FOR Each File in filelist (Root&'\*' )
IF FileSize('$(File)') > 0 then
Logs :
LOAD *
FROM [$(File)]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq)
WHERE dateTimeConnect >0 and cdrRecordType<>'INTEGER';
ENDIF
NEXTFile
ENDSUB
('D:\QLIKVIEW\EXTERNE\TEST')
Je ne comprends toujours pas pourquoi cela ne marchait pas la 1ère fois.
Merci pour ton aide.
Bonjour Thomas
IF ( filesize('$(PathQVD)\$(DimActiv).qvd') > 0) THEN | // QVD already exists |
LOAD * FROM Table;
END IF
Voici ce que j'utilise, cela teste bien la taille du fichier donc forcément son existence.
C'est peut-être le caractère * à la fin de ta chaîne qui pose problème. Insère le dans ta variable
cordialement
Christian
Christian,
même avec le caractère * dans la variable cela ne fonctionne pas.
Merci pour ton aide.
Thomas
c'est peut-être juste le chemin qui n'est pas correct. Ca dépend d'où part le chargement de ton QVW.
Moi j'utilise des positionnements relatifs et des variables à partir du répertoire où sont les qvw.
Essaie de rapatrier tes fichiers au même endroit que les QVW juste pour faire un test
Christian
Christian,
pour moi le chemin est correct puisque les fichiers sont chargés.
Le problème est qu'il ne tient pas compte de mon FileSize.
Thomas,
si les fichiers sont chargés c'est que la condition fileSize() > 0 est remplie, donc que le fichier existe.
Que veux-tu faire exactement ?
Christian
Christian,
Je veux charger uniquement les fichiers "non vides" d'où le test sur la taille.
C'est bon j'ai réussi grâce au code ci-dessous.
SUB ListeFichiers (Root)
FOR Each File in filelist (Root&'\*' )
IF FileSize('$(File)') > 0 then
Logs :
LOAD *
FROM [$(File)]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq)
WHERE dateTimeConnect >0 and cdrRecordType<>'INTEGER';
ENDIF
NEXTFile
ENDSUB
('D:\QLIKVIEW\EXTERNE\TEST')
Je ne comprends toujours pas pourquoi cela ne marchait pas la 1ère fois.
Merci pour ton aide.
Thomas,
je pense que le test était appliqués à plusieurs fichiers et qu'à partir du moment où il en trouve 1 il considère la condition comme remplie.
le fait d'utiliser le FOR EACH exécute la condition sur chaque fichier
christian
Christian,
Effectivement tu dois avoir raison.
Je pensais que la fonction s'éxécutait automatiquement sur tous les fichiers avec le caractère "*" mais apparemment pas. Au moins, j'aurai appris à utiliser foreach et filesize !!!