Out of Bounds na troca de delimitador no ExtractStrings.
Possuo um arquivo separado por virgula que estou jogando pra uma base de dados, mas como existem campos como ´descrição´ que existem uma vírgula intena no campo o sistema de tornou impraticavel.
então troquei o delimitador para ´;´, e mais nada mas o sistema está dando erro OUT OF BOUNDS
ou seja, com virgula como delimitador funciona mas não resolve, mas com ´ponto e virgula´ não funciona
uso a função ExtractStrings no Delphi 7
preciso de ajuda urgente.
Grato
então troquei o delimitador para ´;´, e mais nada mas o sistema está dando erro OUT OF BOUNDS
ou seja, com virgula como delimitador funciona mas não resolve, mas com ´ponto e virgula´ não funciona
uso a função ExtractStrings no Delphi 7
preciso de ajuda urgente.
Grato
Tecrogerio
Curtidas 0
Respostas
Massuda
06/11/2007
Mostre seu código.
GOSTEI 0
Tecrogerio
06/11/2007
Caro Massuda, segue código:
While Not Eof (ArqOrigem) do begin
ReadLn(ArqOrigem,linha);
Texto.Clear;
{ extrai da linha os valores delimitados
por virgula e ignora os espaços}
ExtractStrings([´;´],[ ],Pchar(linha),Texto);
Texto.Strings[0]; // cnpj
Texto.Strings[1]; // Numero da Nota
Texto.Strings[2]; // data
Texto.Strings[3]; // Valor Total
Texto.Strings[4]; // tipo de venda
Texto.Strings[5]; // CFOP
texto.Strings[6]; // Descricão Item
texto.Strings[7]; // Complemento Item
texto.Strings[8]; // Valor Unitario
dados do arquivo de origem:
005.942.454-00 ;;154902;02012006;5144.15;1;5.101;VILLAGE WHITE ;40x40 ER A ;21.20;;
005.942.454-00 ;;154903;02012006;1293.56;1;5.101;ATLANTIS GELO ;40X40 ER A ;21.20;;
005.942.454-00 ;;154904;02012006;5794.05;1;5.101;VERMONT BIANCO ;50X50 ER A ;26.25;;
05.765.889/0001-11 ;;154905;02012006;11576.49;1;5.101;LUX ROYAL ;10X10 A T ;11.70;;
05.765.889/0001-11 ;;154905;02012006;11576.49;1;5.101;LUX PESSEGO ;10X10 A T ;10.70;;
Grato
While Not Eof (ArqOrigem) do begin
ReadLn(ArqOrigem,linha);
Texto.Clear;
{ extrai da linha os valores delimitados
por virgula e ignora os espaços}
ExtractStrings([´;´],[ ],Pchar(linha),Texto);
Texto.Strings[0]; // cnpj
Texto.Strings[1]; // Numero da Nota
Texto.Strings[2]; // data
Texto.Strings[3]; // Valor Total
Texto.Strings[4]; // tipo de venda
Texto.Strings[5]; // CFOP
texto.Strings[6]; // Descricão Item
texto.Strings[7]; // Complemento Item
texto.Strings[8]; // Valor Unitario
dados do arquivo de origem:
005.942.454-00 ;;154902;02012006;5144.15;1;5.101;VILLAGE WHITE ;40x40 ER A ;21.20;;
005.942.454-00 ;;154903;02012006;1293.56;1;5.101;ATLANTIS GELO ;40X40 ER A ;21.20;;
005.942.454-00 ;;154904;02012006;5794.05;1;5.101;VERMONT BIANCO ;50X50 ER A ;26.25;;
05.765.889/0001-11 ;;154905;02012006;11576.49;1;5.101;LUX ROYAL ;10X10 A T ;11.70;;
05.765.889/0001-11 ;;154905;02012006;11576.49;1;5.101;LUX PESSEGO ;10X10 A T ;10.70;;
Grato
GOSTEI 0
Massuda
06/11/2007
Eu acho que devia ser assim......do jeito que você fez, nenhum branco está definido (segundo parametro), não sei como ExtractStrings() se comporta nesse caso.
ExtractStrings([´;´],[´ ´],Pchar(linha),Texto);
GOSTEI 0
Massuda
06/11/2007
Outra coisa...
Verifique se depois do ExtractStrings(), Texto.Count >= 9. Se você ler alguma linha sem o separador pt-vg (ou vazia), provavelmente Texto.Count = 0.
Verifique se depois do ExtractStrings(), Texto.Count >= 9. Se você ler alguma linha sem o separador pt-vg (ou vazia), provavelmente Texto.Count = 0.
GOSTEI 0
Tecrogerio
06/11/2007
Caro Massuda
Tentei usar o espaço em branco, mas dava pau pois ele separava a descrição do item como um outro item o que não é o caso, sem o espaço o resto é normal.
o arquivo tmb não tem linhas em branco
grato
Tentei usar o espaço em branco, mas dava pau pois ele separava a descrição do item como um outro item o que não é o caso, sem o espaço o resto é normal.
o arquivo tmb não tem linhas em branco
grato
GOSTEI 0
Tecrogerio
06/11/2007
Amigo, massuda resolvi o problema
algumas linhas do arquivo de origem estavam fora do padrao de importação o que gerava o erro.
Muito agradecido
algumas linhas do arquivo de origem estavam fora do padrao de importação o que gerava o erro.
Muito agradecido
GOSTEI 0