Novo AdSense

segunda-feira, 25 de fevereiro de 2013

Trabalhando com CSV em Delphi 7

Pessoal...

Boa Tarde!!

Hoje me deparei com uma necessidade que sempre tentei evitar, trabalhar com um arquivo CSV em Delphi 7.
Li em muitos foruns que a partir da versão 2006 do Delphi podemos utilizar uma propriedade "StrictDelimiter" do StringList para fazer esse trabalho, o que facilitaria imensamente o nosso trabalho, contudo a necessidade de utilizar o Delphi 7 falou mais alto (Nosso chefe não quer migrar para uma versão mais atualizada).

Então aqui vai a função que criei com a ajuda dos colegas dos fóruns.


function GetValorNaPosicao(pLinha, pDelimitador : String; pPos : Integer) : String;
var
  iChar : Integer;
  vPos : Integer;
  Str : String;
begin
  Str := '';
  vPos := 1;

  for iChar := 1 to Length(pLinha) do
    begin
      if pLinha[iChar] <> pDelimitador then
        Str := Str + pLinha[iChar]
      else
        begin
          if vPos = pPos then
            Break
          else
            begin
              vPos := vPos + 1;
              Str := '';
            end;
        end;
    end;

  Result := Str;
end;

Esta função leva em consideração que você passará a linha que contém os valores e não todo o arquivo.

Agora o restante é com vocês...

Abraço!!