AJUDA VB6 E ARQUIVO TXT
ahhh desculpe minha distração, fiz com diferente, passou certinho agora, pelas linhas que tem conteúdo, porém quando chega na linha
que nao tem nada, da o seguinte erro:
run-time error [ô]9[ô]
Subscript out of range
agora só falta fazer com que o programa continue e nao dê erro apos encontrar linhas em branco
abraços e muito obrigado...
tentando.... qq coisa posto
que nao tem nada, da o seguinte erro:
run-time error [ô]9[ô]
Subscript out of range
agora só falta fazer com que o programa continue e nao dê erro apos encontrar linhas em branco
abraços e muito obrigado...
tentando.... qq coisa posto
nao, mas nao era pra dar erro, do jeito que te passei, eu fiz aqui e deu certinho, coloquei 3 linhas no final do meu arquivo em branco
[ô]Eu acho que o problema esta no split, a linha que voçê quer dar split não tem | então da erro porque não existe line(0), line(1),...etc.
[ô]Eu faria o seguinte
Do While fsStream.AtEndOfStream = False
P = 1
N = 0
For A = P To Len(fsStream.ReadLine)
If UCase(Mid$(fsStream.ReadLine, A, 1)) = [Ô]|[Ô] Then
N = N + 1
End If
Next
line = Split(fsStream.ReadLine, [Ô]|[Ô])
if N > 0 then [ô]
NovoValor00 = Replace(line(0), [Ô][ô][Ô], [Ô] [Ô])
NovoValor01 = Replace(line(1), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 1 then
NovoValor02 = Replace(line(2), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 2 then
NovoValor03 = Replace(line(3), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 3 then
NovoValor04 = Replace(line(4), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 4 then
NovoValor05 = Replace(line(5), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 5 then
NovoValor06 = Replace(line(6), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 6 then
NovoValor07 = Replace(line(7), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 7 then
NovoValor08 = Replace(line(8), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 8 then
NovoValor09 = Replace(line(9), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 9 then
NovoValor10 = Replace(line(10), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 10 then
NovoValor11 = Replace(line(11), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 11 then
NovoValor12 = Replace(line(12), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 12 then
NovoValor13 = Replace(line(13), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 13 then
NovoValor14 = Replace(line(14), [Ô][ô][Ô], [Ô] [Ô])
end if
con.Execute [Ô]INSERT INTO tabela(Col001, Col002, Col003, Col004, Col005, Col006, Col007, Col008, Col009, Col010, Col011, Col012, Col013, Col014,Col015) VALUES ([ô][Ô] & NovoValor00 & [Ô][ô],[ô][Ô] & NovoValor01 & [Ô][ô],[ô][Ô] & NovoValor02 & [Ô][ô],[ô][Ô] & NovoValor03 & [Ô][ô],[ô][Ô] & NovoValor04 & [Ô][ô],[ô][Ô] & NovoValor05 & [Ô][ô],[ô][Ô] & NovoValor06 & [Ô][ô],[ô][Ô] & NovoValor07 & [Ô][ô],[ô][Ô] & NovoValor08 & [Ô][ô],[ô][Ô] & NovoValor09 & [Ô][ô],[ô][Ô] & NovoValor10 & [Ô][ô],[ô][Ô] & NovoValor11 & [Ô][ô],[ô][Ô] & NovoValor12 & [Ô][ô],[ô][Ô] & NovoValor13 & [Ô][ô],[ô][Ô] & NovoValor14 & [Ô][ô])[Ô]
sCodigo_cliente = oRsNome
iContador = iContador + 1
Form1.progressBar.Caption = iContador & [Ô] clientes de [Ô] & Format$(num_lines)
Form1.statusBar.Caption = [Ô]Importando Clientes[Ô]
DoEvents
Loop
[ô]Espero ter ajudado
[ô]Samuel Bubolz
[ô]Técnico em Informática
[ô]Eu faria o seguinte
Do While fsStream.AtEndOfStream = False
P = 1
N = 0
For A = P To Len(fsStream.ReadLine)
If UCase(Mid$(fsStream.ReadLine, A, 1)) = [Ô]|[Ô] Then
N = N + 1
End If
Next
line = Split(fsStream.ReadLine, [Ô]|[Ô])
if N > 0 then [ô]
NovoValor00 = Replace(line(0), [Ô][ô][Ô], [Ô] [Ô])
NovoValor01 = Replace(line(1), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 1 then
NovoValor02 = Replace(line(2), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 2 then
NovoValor03 = Replace(line(3), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 3 then
NovoValor04 = Replace(line(4), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 4 then
NovoValor05 = Replace(line(5), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 5 then
NovoValor06 = Replace(line(6), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 6 then
NovoValor07 = Replace(line(7), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 7 then
NovoValor08 = Replace(line(8), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 8 then
NovoValor09 = Replace(line(9), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 9 then
NovoValor10 = Replace(line(10), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 10 then
NovoValor11 = Replace(line(11), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 11 then
NovoValor12 = Replace(line(12), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 12 then
NovoValor13 = Replace(line(13), [Ô][ô][Ô], [Ô] [Ô])
end if
if N > 13 then
NovoValor14 = Replace(line(14), [Ô][ô][Ô], [Ô] [Ô])
end if
con.Execute [Ô]INSERT INTO tabela(Col001, Col002, Col003, Col004, Col005, Col006, Col007, Col008, Col009, Col010, Col011, Col012, Col013, Col014,Col015) VALUES ([ô][Ô] & NovoValor00 & [Ô][ô],[ô][Ô] & NovoValor01 & [Ô][ô],[ô][Ô] & NovoValor02 & [Ô][ô],[ô][Ô] & NovoValor03 & [Ô][ô],[ô][Ô] & NovoValor04 & [Ô][ô],[ô][Ô] & NovoValor05 & [Ô][ô],[ô][Ô] & NovoValor06 & [Ô][ô],[ô][Ô] & NovoValor07 & [Ô][ô],[ô][Ô] & NovoValor08 & [Ô][ô],[ô][Ô] & NovoValor09 & [Ô][ô],[ô][Ô] & NovoValor10 & [Ô][ô],[ô][Ô] & NovoValor11 & [Ô][ô],[ô][Ô] & NovoValor12 & [Ô][ô],[ô][Ô] & NovoValor13 & [Ô][ô],[ô][Ô] & NovoValor14 & [Ô][ô])[Ô]
sCodigo_cliente = oRsNome
iContador = iContador + 1
Form1.progressBar.Caption = iContador & [Ô] clientes de [Ô] & Format$(num_lines)
Form1.statusBar.Caption = [Ô]Importando Clientes[Ô]
DoEvents
Loop
[ô]Espero ter ajudado
[ô]Samuel Bubolz
[ô]Técnico em Informática
tente isto
Do While fsStream.AtEndOfStream = False
If fsStream.ReadLine <> [Ô][Ô] then[txt-color=#007100] [ô] vc tem de pegar o readline
[ô] antes dele converter em array[/txt-color]
line = Split(fsStream.ReadLine, [Ô]|[Ô])
NovoValor00 = Replace(line(0), [Ô][ô][Ô], [Ô] [Ô])
NovoValor01 = Replace(line(1), [Ô][ô][Ô], [Ô] [Ô])
NovoValor02 = Replace(line(2), [Ô][ô][Ô], [Ô] [Ô])
NovoValor03 = Replace(line(3), [Ô][ô][Ô], [Ô] [Ô])
NovoValor04 = Replace(line(4), [Ô][ô][Ô], [Ô] [Ô])
NovoValor05 = Replace(line(5), [Ô][ô][Ô], [Ô] [Ô])
NovoValor06 = Replace(line(6), [Ô][ô][Ô], [Ô] [Ô])
NovoValor07 = Replace(line(7), [Ô][ô][Ô], [Ô] [Ô])
NovoValor08 = Replace(line(8), [Ô][ô][Ô], [Ô] [Ô])
NovoValor09 = Replace(line(9), [Ô][ô][Ô], [Ô] [Ô])
NovoValor10 = Replace(line(10), [Ô][ô][Ô], [Ô] [Ô])
NovoValor11 = Replace(line(11), [Ô][ô][Ô], [Ô] [Ô])
NovoValor12 = Replace(line(12), [Ô][ô][Ô], [Ô] [Ô])
NovoValor13 = Replace(line(13), [Ô][ô][Ô], [Ô] [Ô])
NovoValor14 = Replace(line(14), [Ô][ô][Ô], [Ô] [Ô])
con.Execute [Ô]INSERT INTO tabela(Col001, Col002, Col003, Col004, Col005, Col006, Col007, Col008, Col009, Col010, Col011, Col012, Col013, Col014,Col015) VALUES ([ô][Ô] & NovoValor00 & [Ô][ô],[ô][Ô] & NovoValor01 & [Ô][ô],[ô][Ô] & NovoValor02 & [Ô][ô],[ô][Ô] & NovoValor03 & [Ô][ô],[ô][Ô] & NovoValor04 & [Ô][ô],[ô][Ô] & NovoValor05 & [Ô][ô],[ô][Ô] & NovoValor06 & [Ô][ô],[ô][Ô] & NovoValor07 & [Ô][ô],[ô][Ô] & NovoValor08 & [Ô][ô],[ô][Ô] & NovoValor09 & [Ô][ô],[ô][Ô] & NovoValor10 & [Ô][ô],[ô][Ô] & NovoValor11 & [Ô][ô],[ô][Ô] & NovoValor12 & [Ô][ô],[ô][Ô] & NovoValor13 & [Ô][ô],[ô][Ô] & NovoValor14 & [Ô][ô])[Ô]
sCodigo_cliente = oRsNome
iContador = iContador + 1
Form1.progressBar.Caption = iContador & [Ô] clientes de [Ô] & Format$(num_lines)
Form1.statusBar.Caption = [Ô]Importando Clientes[Ô]
DoEvents
end if
Loop
Obrigado pelas dicas... no momento estou tentando da forma que o MARCELO me recomendou,
porém obtive o seguinte erro: ele nao completa todos os registros, por exemplo no meu caso tenho 6 linhas de registro no txt... ele faz o processo apenas com 3...
vou testar a forma que samuel me recomendou e breve posto aquui
Tentando ainda.....
porém obtive o seguinte erro: ele nao completa todos os registros, por exemplo no meu caso tenho 6 linhas de registro no txt... ele faz o processo apenas com 3...
vou testar a forma que samuel me recomendou e breve posto aquui
Tentando ainda.....
sem sucesso por enquanto, testei a forma do samuel e tambem não obtive sucesso... isso esta me destruindo =/ pois esse aplicativo teria que fazer a [Ô]carga[Ô] no sql, sozinho agendado por um schedule do windows...porém dando esse pal, nao tem como fazer isso sozinho
aguardando alguma ajuda, e claro...continuo testando formas aqui!
abs
aguardando alguma ajuda, e claro...continuo testando formas aqui!
abs
tem como vc postar um exemplo deste arquivo txt, com as caracteristicas que geram o erro.
sim, esta aqui:
dessa forma acima nao da erros, pois nao tem [Ô]ENTERS[Ô] depois do ultimo registro...
porém esse:
possui erros
OBS: note que o primeiro nao tem espaços abaixo... e o segundo tem...
Citação:
007|21.07.01.068|2,53|2010
007|21.07.01.069|1,94|2010
007|21.07.01.070|3,56|2010
007|21.07.01.071|3,55|2010
007|21.12.01.004|3,07|2010
007|21.12.01.011|3,37|2010
dessa forma acima nao da erros, pois nao tem [Ô]ENTERS[Ô] depois do ultimo registro...
porém esse:
Citação:
007|21.07.01.068|2,53|2010
007|21.07.01.069|1,94|2010
007|21.07.01.070|3,56|2010
007|21.07.01.071|3,55|2010
007|21.12.01.004|3,07|2010
007|21.12.01.011|3,37|2010
possui erros
OBS: note que o primeiro nao tem espaços abaixo... e o segundo tem...
olá vou postar mais uma vez aqui,
a minha solução pode ser a seguinte também:
dar um replace nas linhas em branco e colocar 3 pipes... ou seja
qdo encontrar linha em branco dar um replace e fazer isso: | | |
s ealguem puder ajudar
abraços!
a minha solução pode ser a seguinte também:
dar um replace nas linhas em branco e colocar 3 pipes... ou seja
qdo encontrar linha em branco dar um replace e fazer isso: | | |
s ealguem puder ajudar
abraços!
up plz
Tópico encerrado , respostas não são mais permitidas