Bonsoir à touteset à tous,
J'ai fais rapidos une p'tite function pour récupérer les valeurs des colonnes d'un fichier CSV :
Utilisation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Function TFPrincipal.RetourneChaine(Chaine:String;Colonne: Integer):String; Var i: integer; CompteSeparateur: Integer; begin Result := ''; CompteSeparateur := 0; for i := 0 to Length(Chaine) do begin if Chaine[i] = ';' then Inc(CompteSeparateur); if CompteSeparateur = Colonne then exit; if (CompteSeparateur = Colonne - 1) And (Chaine[i] <> ';') then Result := Result + Chaine[i]; end; end;
Mon problème est que toutes les colonnes sont reprise sauf la première !!!, la fonction me retourne du vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 //... Open; for i := LigneDebutLecture to FichierCSV.Count - 1 do begin Insert; FieldByName('CodeDossier').AsString := RetourneChaine(FichierCSV.Strings[i],1); FieldByName('EAN').AsString := RetourneChaine(FichierCSV.Strings[i],2); FieldByName('CodeArticle').AsString := RetourneChaine(FichierCSV.Strings[i],3); FieldByName('Libelle').AsString := RetourneChaine(FichierCSV.Strings[i],4); FieldByName('FamilleA').AsString := RetourneChaine(FichierCSV.Strings[i],5); FieldByName('FamilleP').AsString := RetourneChaine(FichierCSV.Strings[i],6); FieldByName('Actif').AsBoolean := StrToBool(RetourneChaine(FichierCSV.Strings[i],7)); if GererMontant then begin FieldByName('PrixUnitNetAchat').AsCurrency := StrToFloat(RetourneChaine(FichierCSV.Strings[i],8)); FieldByName('PrixUnitNetVente').AsCurrency := StrToFloat(RetourneChaine(FichierCSV.Strings[i],9)); end; Post; end; //...
j'ai essayé avec un Char ou passer par un String pour concaténation, sa change rien. Si je place un showmessage(Chaine[i]) en dessous des trois if, il m'affiche bien les lettres une par une.
What is this thing ?
Partager