GARANTIR DESCONTO

Fórum Ajuda com o StringGrid.LoadFromCSV... #533328

01/10/2015

0

Olá pessoal, estou precisando de uma ajuda com o comando nativo do Delphi XE2 StringGrid.LoadFromCSV...

O problema é o seguinte:

Quando salvo os dados como: StringGrid.SaveToCSV('C:\dados\dados.csv',';',' '); não ocorre erro algum ao carregá-lo utilizando o comando StringGrid.LoadFromCSV...
porém quando o endereço do diretório é : C:\meus dados\dados.csv ou seja, possui um espaço entre os nomes do diretório, o comando StringGrid.LoadFromCSV... falha e carrega as informações de foma incorreta. Alguém tem alguma dica para solucionar esse pequeno problema?

Obrigado.
Adriano.
Adriano Crivelli

Adriano Crivelli

Responder

Posts

10/11/2015

Rafael Bosco

Utiliza uma função nativa do Delphi, StringReplace:

   function ArrumaCaminho(const Caminho: String): String;
   begin
      Result := StringReplace(Caminho, ' ', '', [rfReplaceAll]);
   end;



  StringGrid.LoadFromCSV(ArrumaCaminho(C:\meus dados\dados.csv',';',' ');
Responder

Gostei + 0

12/11/2015

Adriano Crivelli

Obrigado Rafael, vou testar...
Responder

Gostei + 0

20/11/2015

Adriano Crivelli

Rafael, sua dica deu o segunte erro:
[dcc32 Error] ...E2034 Too many actual parameters

Eu utilizei assim:
StringGrid.LoadFromCSV(ArrumaCaminho(edtLocalData.text+'data.csv',';',' '));

...mas obrigado assim mesmo.
Responder

Gostei + 0

20/11/2015

Rafael Bosco

Brother, eu só copiei o seu comando do LoadFromCSV, não sei se ele está correto, pois eu não testei aqui, mas essa mensagem ta dizendo que tem mais parâmetros na função do que o necessário, altere para :

   StringGrid.LoadFromCSV(ArrumaCaminho(edtLocalData.text+'data.csv')',';',');


Lembrando que apenas estou copiando o seu comando, só adiciona um ) aí depois do dados.csv, provavelmente vai dar certo....
Responder

Gostei + 0

25/11/2015

Adriano Crivelli

Rafael, resolvi o problema utilizando a seguinte procedure...

procedure LoadCSVFile(FileName: string; JvStringGrid1: TStringGrid);
var
temp, fId, fFile, fDate: string;
sgItem: TStringList;
f: textfile;
begin
assignfile(f, FileName);
reset(f);
sgItem := TStringList.Create;
JvStringGrid1.RowCount := 2;
while not eof(f) do
begin
readln(f, temp);
fId := copy(temp, 1, pos(';', temp) - 1);
delete(temp, 1, pos(';', temp));
fFile := copy(temp, 1, pos(';', temp) - 1);
delete(temp, 1, pos(';', temp));
fDate := temp;
sgItem.Clear;
sgItem.Add(fID);
sgItem.Add(fFile);
sgItem.Add(fDate);
JvStringGrid1.Rows[JvStringGrid1.RowCount - 1].AddStrings(sgItem);
JvStringGrid1.RowCount := JvStringGrid1.RowCount + 1;
end;
sgItem.Free;
closefile(f);
end;

Modo de usar:

LoadCSVFile(edtLocalData.text+'data.csv', JvStringGrid1);

Tive de fazer alguns ajustes pois o comando que salva os dados no arquivo 'data.csv'...JvStringGrid1.SaveToCSV...grava informações adicionais que precisaram ser removidas ao carregar os dados, mas funcionou perfeitamente.
Caso sirva de ajuda para alguém...
Obrigado pela sua colaboração. Valeu a intenção.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar