AJUDA VB6 E ARQUIVO TXT

NAM4 05/11/2010 13:05:55
#356718
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
ACG1574 05/11/2010 13:53:39
#356732
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
SAMUELBUBOLZ 07/11/2010 10:47:46
#356830
[ô]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



MARCELO.TREZE 07/11/2010 14:21:02
#356837
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
NAM4 08/11/2010 08:21:23
#356865
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.....
NAM4 08/11/2010 14:21:25
#356898
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
MARCELO.TREZE 08/11/2010 17:14:52
#356908
tem como vc postar um exemplo deste arquivo txt, com as caracteristicas que geram o erro.

NAM4 09/11/2010 08:14:58
#356935
sim, esta aqui:
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...
NAM4 09/11/2010 11:15:37
#356963
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!
NAM4 10/11/2010 09:25:45
#357076
up plz
Página 2 de 3 [21 registro(s)]
Tópico encerrado , respostas não são mais permitidas