ARQUIVO CSV
Alguem poderia me ajudar como faço pra ler arquivo csv de todos os tipos? utf-8 , etc
estou usando essa rotina abaixo porem so consigo ler o arquivo se eu abrir ele primeiro pelo excel e salvar o proprio arquivo csv como csv e em seguida executar a rotina dai consigo ler
segue a rotina:
Dim aux As Integer
Dim coluna As String
iarq = FreeFile
Open Arquivo For Input As iarq
Do While EOF(iarq) = False
Line Input #iarq, sLinha
partes = Split(sLinha, [Ô];[Ô])
msgbox partes(0)
End If
Loop
Close iarq
estou usando essa rotina abaixo porem so consigo ler o arquivo se eu abrir ele primeiro pelo excel e salvar o proprio arquivo csv como csv e em seguida executar a rotina dai consigo ler
segue a rotina:
Dim aux As Integer
Dim coluna As String
iarq = FreeFile
Open Arquivo For Input As iarq
Do While EOF(iarq) = False
Line Input #iarq, sLinha
partes = Split(sLinha, [Ô];[Ô])
msgbox partes(0)
End If
Loop
Close iarq
Porque não usar um driver OleDb e abrir com o ADO ao invés de abrir como texto?
Citação::
Porque não usar um driver OleDb e abrir com o ADO ao invés de abrir como texto?
poderia me ajudar me dando algum exemplo de implementação?
meu arquivo está separa por [Ô];[Ô]
obrigado antecipadamente,
dim cn = new ADODB.Connection
cn.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\PASTA_ONDE_ESTA_SEU_ARQUIVO\;Extended Properties=[Ô] + chr(34) + [Ô]text;HDR=Yes;FMT=Delimited[Ô] + chr(34) +[Ô];[Ô]
dim rs = new ADODB.Recordset
rs.Open [Ô]Select * from NOME_DO_SEU_ARQUIVO[Ô], cn
Citação::
dim cn = new ADODB.Connection
cn.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:PASTA_ONDE_ESTA_SEU_ARQUIVO;Extended Properties=[Ô] + chr(34) + [Ô]text;HDR=Yes;FMT=Delimited[Ô] + chr(34) +[Ô];[Ô]
dim rs = new ADODB.Recordset
rs.Open [Ô]Select * from NOME_DO_SEU_ARQUIVO[Ô], cn
fiz alguns ajustes no codigo mas estou com dificuldade de ler todas as colunas...só consigo ler a primeira....
coloquei o csv em anexo.
segue o código:
Dim cn As New ADODB.Connection
cn.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\TESTE\;Extended Properties=[Ô] + Chr(34) + [Ô]text;HDR=Yes;FMT=Delimited[Ô] + Chr(34) + [Ô];[Ô]
Dim rs As New ADODB.Recordset
rs.Open [Ô]Select * from teste.csv[Ô], cn, adOpenKeyset, adLockReadOnly
Do While rs.EOF = False
List1.AddItem rs(0)
[ô]se tentar colocar aqui a segunda coluna ele nao encontra.... que seria rs(1)
rs.MoveNext
Loop
rs.Close
é provável que você tenha que alterar uma chave de registro para isso. Mas você pode antes tentar usando ODBC ao invés de OleDB com a seguinte connection string:
Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\PASTA_DOS_ARQUIVOS\;Extensions=asc,csv,tab,txt;
Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\PASTA_DOS_ARQUIVOS\;Extensions=asc,csv,tab,txt;
Citação::
é provável que você tenha que alterar uma chave de registro para isso. Mas você pode antes tentar usando ODBC ao invés de OleDB com a seguinte connection string:
Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:PASTA_DOS_ARQUIVOS;Extensions=asc,csv,tab,txt;
Esta acontecendo a mesma coisa....como faço pra alterar essa chave no registro...? qual seria a chave?
Citação::
Veja instruções aqui
nao encontrei a chave citada no artigo indicado....poderia me ajudar...? estou dependendo disso pra iniciar um projeto...
Não funcionou nem com o driver ODBC?
Citação::
Não funcionou nem com o driver ODBC?
Deu não...se eu te passar o arquivo será que poderia ver pra mim ? Agradeço desde já
Tópico encerrado , respostas não são mais permitidas