CONTAR QTDE DE CARACTERES DE UMA LINHA .TXT
Pessoal, alguem sabe como eu faço para contar a quantidade de caracteres(letras) de uma linha num arquivo txt
por ex.: informações dentro do arquivo txt
0163592CEBADZCCCEAEDBACBWDBCAEAACADEBBCDEDCBABCDEDCBABCDEDCBABCDEDC
0163592CEBADZCCCEAEDBACBWDBCAEAACADEBBCDEDCBABCDEDCBABCDEDCBABCDEDC
0163592CEBADZCCCEAEDBACBWDBCAEAACADEBBCDEDCBABCDEDCBABCDEDCBABCDEDC
= 67 caract. cada linha.
por ex.: informações dentro do arquivo txt
0163592CEBADZCCCEAEDBACBWDBCAEAACADEBBCDEDCBABCDEDCBABCDEDCBABCDEDC
0163592CEBADZCCCEAEDBACBWDBCAEAACADEBBCDEDCBABCDEDCBABCDEDCBABCDEDC
0163592CEBADZCCCEAEDBACBWDBCAEAACADEBBCDEDCBABCDEDCBABCDEDCBABCDEDC
= 67 caract. cada linha.
Tente isso.
Private Sub Text1_KeyPress(KeyAscii As Integer)
Label1.Caption = Len(Text1.Text)
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Label1.Caption = Len(Text1.Text)
End Sub
Essa função é para contar string, o que estou me referindo é dentro do arquivo TXT. A linha de um arquivo txt
coloque um listbox para exibir os resultados e cole este código em um botão
Dim Cont As Integer
Dim Arq1 As Integer
Dim InlIne As String
Cont = 0
Arq1 = FreeFile
Open [Ô]c:\seuarquivotexto.txt[Ô] For Input As #Arq1
Do While Not EOF(Arq1)
Cont = Cont +1
Line Input #Arq1, InLine
List1.AddItem [Ô]Linha nº [Ô] & cont & [Ô] Possui [Ô] & Len(inLine) & [Ô] caracteres[Ô]
[ô]
Loop
Close #Arq1
Solução .... ..... eu acho????
no seu modulo declare
Public Declare Function SendMessage Lib [Ô]user32[Ô] Alias [Ô]SendMessageA[Ô] (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const EM_LINEINDEX = &HBB
Public Const EM_LINELENGTH = &HC1
Public Const EM_GETLINE = &HC4
Public Const EM_GETLINECOUNT = &HBA
[txt-color=#e80000]Primeira função pra contar linhas[/txt-color]
Public Function SomaLinha(rtb As RichTextBox) As Long
SomaLinha = SendMessage(rtb.hwnd, EM_GETLINECOUNT, 0, ByVal 0&)
End Function
[txt-color=#e80000]Segunda função somar comprimento da linha[/txt-color]
Public Function LineLength(rtbTextControl as TextBox, QualLinha as long ) As Long
Dim charindex As Long
Dim linetextlen As Integer
Dim linetexts As String
Dim RetVal As Long
charindex = SendMessage(rtbTextControl.hwnd, EM_LINEINDEX, ByVal QualLinha, ByVal CLng(0))
linetextlen = SendMessage(rtbTextControl.hwnd, EM_LINELENGTH, ByVal charindex, ByVal CLng(0))
linetexts = Space(IIf(linetextlen >= 2, linetextlen, 2))
CopyMemory ByVal linetexts, linetextlen, Len(linetextlen)
RetVal = SendMessage(rtbTextControl.hwnd, EM_GETLINE, ByVal lineindex, ByVal linetexts)
If linetextlen < 2 Then linetexts = Left(linetexts, linetextlen) <<<<< Esta função aki retorna o texto da linha Viu???
LineLength = RetVal
End Function
Com estas duas funções vc conseguira o que quer ..... eu acho
no seu modulo declare
Public Declare Function SendMessage Lib [Ô]user32[Ô] Alias [Ô]SendMessageA[Ô] (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const EM_LINEINDEX = &HBB
Public Const EM_LINELENGTH = &HC1
Public Const EM_GETLINE = &HC4
Public Const EM_GETLINECOUNT = &HBA
[txt-color=#e80000]Primeira função pra contar linhas[/txt-color]
Public Function SomaLinha(rtb As RichTextBox) As Long
SomaLinha = SendMessage(rtb.hwnd, EM_GETLINECOUNT, 0, ByVal 0&)
End Function
[txt-color=#e80000]Segunda função somar comprimento da linha[/txt-color]
Public Function LineLength(rtbTextControl as TextBox, QualLinha as long ) As Long
Dim charindex As Long
Dim linetextlen As Integer
Dim linetexts As String
Dim RetVal As Long
charindex = SendMessage(rtbTextControl.hwnd, EM_LINEINDEX, ByVal QualLinha, ByVal CLng(0))
linetextlen = SendMessage(rtbTextControl.hwnd, EM_LINELENGTH, ByVal charindex, ByVal CLng(0))
linetexts = Space(IIf(linetextlen >= 2, linetextlen, 2))
CopyMemory ByVal linetexts, linetextlen, Len(linetextlen)
RetVal = SendMessage(rtbTextControl.hwnd, EM_GETLINE, ByVal lineindex, ByVal linetexts)
If linetextlen < 2 Then linetexts = Left(linetexts, linetextlen) <<<<< Esta função aki retorna o texto da linha Viu???
LineLength = RetVal
End Function
Com estas duas funções vc conseguira o que quer ..... eu acho
Minha função e pra um textbox .....
No caso se for arquivo texto entaum ..... use a função do marcelo treze
Dim Cont As Integer
Dim Arq1 As Integer
Dim InlIne As String
Cont = 0
Arq1 = FreeFile
Open [Ô]c:\seuarquivotexto.txt[Ô] For Input As #Arq1
Do While Not EOF(Arq1)
Cont = Cont +1
Line Input #Arq1, InLine
if Cont = ALinhaQueVoceQuer then msgbox len(lnLine) [ô]aki exibe o comprimento da linha .....
Loop
Close #Arq1
Dim Cont As Integer
Dim Arq1 As Integer
Dim InlIne As String
Cont = 0
Arq1 = FreeFile
Open [Ô]c:\seuarquivotexto.txt[Ô] For Input As #Arq1
Do While Not EOF(Arq1)
Cont = Cont +1
Line Input #Arq1, InLine
if Cont = ALinhaQueVoceQuer then msgbox len(lnLine) [ô]aki exibe o comprimento da linha .....
Loop
Close #Arq1
Citação::
coloque um listbox para exibir os resultados e cole este código em um botãoDim Cont As Integer
Dim Arq1 As Integer
Dim InlIne As String
Cont = 0
Arq1 = FreeFile
Open [Ô]c:seuarquivotexto.txt[Ô] For Input As #Arq1
Do While Not EOF(Arq1)
Cont = Cont +1
Line Input #Arq1, InLine
List1.AddItem [Ô]Linha nº [Ô] & cont & [Ô] Possui [Ô] & Len(inLine) & [Ô] caracteres[Ô]
[ô]
Loop
Close #Arq1
Você tem que ler a linha para saber quantos caracteres tem. Siga o exemplo acima.
Marcelo e Ademir.... Muito bom!! Valeu... mesmo.....
Tópico encerrado , respostas não são mais permitidas