CONTAR LINHAS EM UM ARQUIVO TXT

USUARIO.EXCLUIDOS 12/05/2004 17:49:35
#24354
Como contar as linhas de um arquivo txt? Como redimensionar o tamanho da fonte qdo o texto ultrapassar o tamanho do form?
USUARIO.EXCLUIDOS 12/05/2004 19:32:11
#24365
Resposta escolhida
a primeira parte:
vc abre o arquivo e conta a ocorrencia de vbcrlf's no arquivo (contando apenas a quantidade de vbLF ja deve ser o suficiente)

dim Texto as string
dim i as byte
dim Arquivo as string

arquivo = app.path & "\MyArquivo"
texto = string(FileLen(Arquivo),chr$(0))

i=freefile
open Arquivo for input as #i
texto = input(#i,filelen(#i)) 'nao estou com meu vb aki - mas acredito que seja essa sintaxe
close #i
tamanho = len(texto) - len(replace(texto,vblf,""))

com relacao ao redimensionamento da fonte - vc diz exatamente doq? vc esta escrevendo isso onde?
de qualquer forma - talvez seja interessante considerar a possibilidade de usar um richtextbox - nunca tive problemas por ultrapassar o limite de caracteres neste controle, e ele tem as barras de rolagem que podem auxiliar voce no caso de passar o tamanho maximo esperado
USUARIO.EXCLUIDOS 13/05/2004 08:20:07
#24426
uma forma seria usar um AutoSize=true
o problema é que você vai precisar controlar as quebras de linha manualmente.

Ficaria algo como:
quando o label atingir um width do tamanho do form, você pula de linha
quando o label atingir um height do tamanho do form, voce altera o tamanho da font

ainda prefiro utilizar um richtextbox, mas fazendo isso voce pode controlar com labels
USUARIO.EXCLUIDOS 13/05/2004 12:59:23
#24481
é apenas uma idéia - teria de trabalhar melhor nela para ver se vale a pena ou não - mas segue abaixo...

coloca dois labels - label1 e label2...
label2 vai ser usado apenas para calcular os tamanhos máximos
label1 vai ser o label usado para armazenar os dados efetivamente
adicione também um timer Timer1 - com interval = 50
deixa rolar por alguns segundos e você vai ver o que eu tinha em mente...

ah - a propriedade AutoSize deve ser true nos dois labels

Option Explicit

Dim TamanhoLinha As Integer
Dim TamanhoFonte As Integer

Private Sub Form_Load()

TamanhoFonte = 14
AcertaTamanho

End Sub

Private Sub AcertaTamanho()
Label2.FontSize = TamanhoFonte
Label1.FontSize = TamanhoFonte
Label2.Caption = ""
Do While Label2.Width Width
Label2.Caption = Label2.Caption & "M"
Loop
TamanhoLinha = Len(Label2.Caption)
Label2.Caption = ""
Label1.Caption = ""
End Sub

Private Sub Timer1_Timer()
Static Linha As Integer

If Linha TamanhoLinha Then
Label1.Caption = Label1.Caption & "M"
Linha = Linha + 1
Else
Linha = 0
Label1.Caption = Label1.Caption & vbCrLf
End If

If Label1.Height = Height Then
TamanhoFonte = TamanhoFonte - 2
AcertaTamanho
End If


End Sub
Tópico encerrado , respostas não são mais permitidas