LER UM ARQUIVO INI E RETORNAR

 Tópico anterior Próximo tópico Novo tópico

LER UM ARQUIVO INI E RETORNAR

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#496278 - 16/02/2021 19:17:55

JOAOARCOS
ARCOS
Cadast. em:Outubro/2020


Última edição em 16/02/2021 19:18:47 por JOAOARCOS

Boa tarde, estou precisando criar um jeito para ler um ini e retornar a quantidade de items que esta no arquivo ini, neste caso o meu ini tem 2 itens.
Como eu faço para retornar quantidade de ITENS que contem esse arquivo INI?

'exemplo do arquivo INI

[Produto001]
nItem=1
infAdProd=
cProd=20161000037
cEAN=SEM GTIN
xProd=CALCA AZUL
NCM=62034200
CEST=
indEscala=
CNPJFab=
cBenef=
EXTIPI=
CFOP=5101
uCom=PCS
qCom=50
vUnCom=48
vProd=2400
cEANTrib=SEM GTIN
uTrib=PCS
qTrib=50
vUnTrib=48
vFrete=0
vSeg=0
vDesc=0
vOutro=0
IndTot=1
xPed=
nItemPed=
[Produto002]
nItem=2
infAdProd=
cProd=20161000038
cEAN=SEM GTIN
xProd=CALCA CINZA CLARO
NCM=62034200
CEST=
indEscala=
CNPJFab=
cBenef=
EXTIPI=
CFOP=5101
uCom=PCS
qCom=50
vUnCom=48
vProd=2400
cEANTrib=SEM GTIN
uTrib=PCS
qTrib=50
vUnTrib=48
vFrete=0
vSeg=0
vDesc=0
vOutro=0
IndTot=1
xPed=
nItemPed=




#496279 - 16/02/2021 20:49:45

OCELOT
SOROCABA
Cadast. em:Março/2012


Sinceramente você não deveria estar usando arquivos INI, eles são bem limitados, seria muito melhor usar um XML ou JSON

Mas se quer (ou precisa) mesmo usar então use alguma biblioteca pra isso, existe várias no NuGet, como por exemplo a ini-parser, pelo que vi com ela você consegue enumerar as sessões do ini e então em cada sessão enumerar as propriedades dela



Resposta escolhida #496280 - 16/02/2021 21:53:03

CAJU
FORTALEZA
Cadast. em:Dezembro/2003


Private Declare Function GetPrivateProfileSection Lib 'kernel32' Alias _
    'GetPrivateProfileSectionA' (ByVal lpAppName As String, ByVal lpReturnedString As String, _
    ByVal nSize As Long, ByVal lpFileName As String) As Long

Private Declare Function GetPrivateProfileString Lib 'kernel32' Alias _
    'GetPrivateProfileStringA' (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
    ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, _
    ByVal lpFileName As String) As Long

Private Declare Function WritePrivateProfileSection Lib 'kernel32' Alias _
    'WritePrivateProfileSectionA' (ByVal lpAppName As String, ByVal lpString As String, _
    ByVal lpFileName As String) As Long

Private Declare Function WritePrivateProfileString Lib 'kernel32' Alias _
    'WritePrivateProfileStringA' (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
    ByVal lpString As Any, ByVal lpFileName As String) As Long


'reads an Ini string
Public Function ReadIni(Filename As String, Section As String, Key As String) As String
Dim RetVal As String * 255, v As Long
  v = GetPrivateProfileString(Section, Key, '', RetVal, 255, Filename)
  ReadIni = Left(RetVal, v) ' -1
End Function

'reads an Ini section
Public Function ReadIniSection(Filename As String, Section As String) As String
Dim RetVal As String * 255, v As Long
  v = GetPrivateProfileSection(Section, RetVal, 255, Filename)
  ReadIniSection = Left(RetVal, v - 1)
End Function

'writes an Ini string
Public Sub WriteIni(Filename As String, Section As String, Key As String, value As String)
  WritePrivateProfileString Section, Key, value, Filename
End Sub

'writes an Ini section
Public Sub WriteIniSection(Filename As String, Section As String, value As String)
  WritePrivateProfileSection Section, value, Filename
End Sub


T+,
Caju

#496281 - 16/02/2021 21:55:07

CAJU
FORTALEZA
Cadast. em:Dezembro/2003


  Dim lst As Variant
  
lst = Split(ReadIniSection(File, 'Produto001'), vbNullChar)

msgbox 'Total de linhas: ' & Ubound(lst) +1

T+,
Caju

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por JOAOARCOS em 17/02/2021 14:13:10