Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Hamdi_G
Contributor III
Contributor III

Importer un fichier avec 2 delimitateurs

Bonjour, j'essaie d'importer un fichier brut comportant 2 delimitateurs de mes données (virgules et point-virgule) or quand j'essaie de l'importer à priori Qlik sense ne me propose d'utiliser qu'un seul delimitateur (soit virgules  ou soit point-virgule mais pas les deux en même temps). Comment puis je faire dans ce cas

5 Replies
brunobertels
Master
Master

Bonjour 

charger sans délimiteur dans une table provisoire pour n'avoir qu'un seul champ

puis recharger cette table en remplaçant ; par , ou l'inverse suivant quel délimiteur tu veux 

sauvegarder cette table en CSV 

Recharger cette table cette fois avec le délimiteur voulu soit , soit ; 

Hamdi_G
Contributor III
Contributor III
Author

Je n'y parviens pas; pouvez vous le faire avec ce fichier test ?

brunobertels
Master
Master

Bonjour 

Ci joint un exemple avec un fichier csv contenant 2 séparateurs ( Virgule et point-virgule) 

Le principe consiste à charge ce fichier en une seule colonne sans tenir compte de séparateurs , en remplaçant au chargement le séparateurs qu'on ne veut pas ( Ici je remplace ; par ,) et sauvegarder la table en csv 

 

Puis de recharger la table sauvegarder , cette fois en incluant le séparateur. 

 

J'ai donc un fichier csv avec des séparateurs différents : 

brunobertels_0-1594378699634.png

Je charge ce fichier comme ceci  : en ne chargeant qu'une colonne sans entête et sans nom ( Qlik créé le nom [@1:n] et à l'intérieure de ce champ je remplace les ; par , avec la fonction replace() : 

[TEMP]:
LOAD
replace([@1:n],';',',')
FROM [lib://Documents/Export_QS_CSV.csv]
(fix, codepage is 28591, no labels );
store TEMP into [lib://Documents/TEMP.csv ](txt, delimiter is ',');
drop table [TEMP];

Je sauvegarde ce fichier avec un Store 

mon fichier cette fois se présente comme ceci : 

J'ai bien des vigules partout mais là ou il y avait des ; le fichier comporte des guillemets en début et fin 

brunobertels_1-1594379012156.png

Je recharge ce fichier en enlevant les guillemets sur les lignes ou elle sont présentes comme ceci toujours avec la fonction replace : 

[TEMP]:
LOAD
replace(["MOIS],'"','') as MOIS,
[SEMAINE],
[DATE_JOUR],
[LIGNE],
[INDICATEURS],
[VOLUME],
[TYPE],
replace([GROUPE"],'"','') as [GROUPE]

FROM [lib://Documents/TEMP.csv]
(txt, utf8, embedded labels, delimiter is ',', no quotes, header is 1 lines);

Voilà avec çà tu dois pourvoir adapter le script à ton besoin 

 

bonne journée 

brunobertels
Master
Master

Bonjour 

voici le script : 

[TEMP]:
LOAD
replace(replace(replace(replace([@1:n],';',','),':',','),'[',''),']','')
FROM [lib://Documents/TEST.txt]
(fix, codepage is 28591, no labels );
store TEMP into [lib://Documents/TEMP.csv ](txt, delimiter is ',');
drop table [TEMP];

 

[TEMP]:
LOAD
[@1:n]
FROM [lib://Documents/TEMP.csv]
(fix, codepage is 28591, no labels );
store TEMP into [lib://Documents/TEMP.csv ](txt, delimiter is ',');
drop table [TEMP];


[TEST1]:
LOAD
replace(["""num],'"""','') as num,
[Date],
[heure],
[num2],
[type],
[id1],
[id2],
[id3],
[id4],
[id5],
replace([id6"""],'"""','') as id6
FROM [lib://Documents/TEMP.csv]
(txt, utf8, embedded labels, delimiter is ',', no quotes, header is 2 lines);

 

 

brunobertels
Master
Master

Bonjour

 

voici le script :

 

[TEMP]:
LOAD
replace(replace(replace(replace([@1:n],';',','),':',','),'[',''),']','')
FROM [lib://Documents/TEST.txt]
(fix, codepage is 28591, no labels );
store TEMP into [lib://Documents/TEMP.csv ](txt, delimiter is ',');
drop table [TEMP];

 

[TEMP]:
LOAD
[@1:n]
FROM [lib://Documents/TEMP.csv]
(fix, codepage is 28591, no labels );
store TEMP into [lib://Documents/TEMP.csv ](txt, delimiter is ',');
drop table [TEMP];


[TEST1]:
LOAD
replace(["""num],'"""','') as num,
[Date],
[heure],
[num2],
[type],
[id1],
[id2],
[id3],
[id4],
[id5],
replace([id6"""],'"""','') as id6
FROM [lib://Documents/TEMP.csv]
(txt, utf8, embedded labels, delimiter is ',', no quotes, header is 2 lines);