Paramétrer les séparateurs lors de la lecture d'un fichier texte - Delphi/Pascal - Programmation
Marsh Posté le 23-07-2004 à 15:55:29
Normalement ce code devrait t'aider... La fonction qui t'interesse est SetFiles, qui prend le nom du fichier à ouvrir et le conteneur (en TStrings) des éléments à rajouter.
function GetFileContent(const FileName: string): string;
var
Lines: TStrings;
begin
Result := '';
Lines := TStringList.Create;
try
try
Lines.LoadFromFile(FileName);
except
Exit;
end;
Result := Lines.Text;
finally
Lines.Free;
end;
end; // GetFileContent
procedure AddItem(const Container: TStrings; const Item: string);
begin
if Item <> '' then
Container.Add(Item);
end; // AddItem
procedure SetItems(const FileName: string; const Container: TStrings);
const
DELIMITERS = [' ', ',', ';', #9, #13];
var
C: Char;
Index: Integer;
Content, Item: string;
begin
Container.Clear;
Content := GetFileContent(FileName);
if Content = '' then
Exit;
Item := '';
for Index := 1 to Length(Content) do
begin
C := Content[Index];
if C = #10 then
Continue;
if C in DELIMITERS then
begin
AddItem(Container, Item);
Item := '';
end else
Item := Item + C;
end;
AddItem(Container, Item);
end; // SetItems
Marsh Posté le 28-07-2004 à 14:34:47
Salut,
Merci, c'est exactement ce qu'il me fallait à deux trois petites modifs prets, c'etait super sympa!
Merci
Marsh Posté le 01-08-2004 à 01:12:30
jaimetonsourire a écrit : Salut, |
De rien ca me fait plaisir a moi egalement. Et n'hesite pas des que tu as un probleme.
Marsh Posté le 05-08-2004 à 01:18:40
jaimetonsourire a écrit : Bonjour, |
le mieux est de faire une table qui contient les différents séparateur et de faire des essais successifs jusque avoir celui qui convient.
ou alors de considerer qu'un séparateur est un caractere qui n'est ni une lettre alphabétique ni un chiffre. Pour avoir une liste assez exhaustive de séparateurs vous pouvez avoir :
;,/#! et tab vous collez ca dans un fichier à jour et vous livrez un bout de programme séparé qui mets à jour la liste en cas de soucis.
et meme, vous prenez la premiere ligne, vous virez les lettres alphabétiques et les signes numériques comme "+-,." et vous vous retrouvez avec le séparateur.
Marsh Posté le 19-07-2004 à 13:13:56
Bonjour,
Je développe un logiciel dans lequel je dois coder une fonction d'importation de données stockées dans des fichiers de type txt.
J'aimerai donner à l'utilisateur le choix du séparateur lors de la lecture d'un fichier texte.
Pour cele je rentre les différents séparateurs en items dans une combobox (par exple tabulation, point virgule, espace, virgule etc.) et je voudrais que l'utilisateur en fonction du fichier à lire choisisse le séparateur! et lancer l'importation des données. Je signale tout simplement que j'ai déjà développé la fonction de conversion des fichiers txt importés en fichiers base de données et que j'ai besoin tout juste de délimiter les chaines à la lecture pour l'identification des champs de mes tables.
Pourriez vous m'éclairer un peu sur les possibilités de coder celà?