Ir para conteúdo
Fórum Script Brasil
  • 0

Método Split


Andersonjb

Pergunta

E ai pessoal, beleza? Bem, eu queria tirar uma duvida quanto ao método Split. Bem, o meu objetivo é encontrar o total de linhas de um arquivo. Ai eu uso o seguinte código:

        Dim script As String = texto
        Dim linhas() As String = script.Split(vbCrLf)
        Dim tl As Integer = linhas.Length

Bem, acontece o seguinte: se eu tenho somente uma linha, sem o vbCrlf, ele indica que eu tenho uma linha. Mas como ele pode indicar isso se o arquivo não tem nenhum caracter vbCrlf, ou seja, eu não pulei linha?

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Opa, Gray, foi util sim, mas resolveu somente parte do meu problema. Bem, dá so uma olhada:

O método Split separa as strings pelo caracter passado pelo parametro, certo? Então, quer dizer que se o caracter passado pelo parametro for o vbCrlf, toda vez que eu pular linha no arquivo, uma string vai ser separada. Então digamos que eu tenha a seguinte string:

he

he

he

Bem, eu pulei de linha duas vezes, isso representra 3 strings, e na matriz, ficaria assim:

linhas(0) = he

linhas(1) = he

linhas(2) = he

Bem, mas acontece que a matriz não fica assim, fica assim:

linhas(0) = hehehe

Simplesmente, o arquivo não está dividindo. Bem, ai eu pensei, vou fazer o teste em separado. Fiz a mesma coisa e deu certo, então eu pensei: será que não é "aonde" eu estou declarando esse código?

Bem, no teste eu declarei em um simples botão, e no original, eu estou declarando em uma função dentro de um módulo. Isso pode interferir nesse código?

Link para o comentário
Compartilhar em outros sites

  • 0

Como está o código da sua função? Vale notar também que o Split() da System.String da .NET Framework 1.0 e 1.1 só aceita caracteres (Char) como separadores, e não uma string inteira (que no caso, o vbCrLf, é uma string formada por dois caracteres).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Bem, mas mesmo ele usando somente um caracter, funcionou em outra parte do programa.

Bem, lá vai o código da função:

    Public Function contaletras(ByVal texto As String)

        Dim script As String = texto
        Dim linhas() As String = script.Split(vbCrLf)

        Dim ul As Integer = linhas.IndexOf(linhas, vbCrLf) + 1
        Dim tl As Integer
        If ul = 0 And linhas.Length > 1 Then
            tl = 0
        Else
            tl = linhas.Length + 1
        End If

        Dim tcnr As Integer
        Dim tcom As Integer
        Dim cc As Integer
        Dim legal As String
        Dim bufferom As String
        Dim buffernr As String


        For k As Integer = 0 To script.Length

            If k < script.Length Then
                legal = (script.Substring(k, 1))
            End If
            If k < (script.Length - 3) Then
                buffernr = script.Substring(k, 2)
                bufferom = script.Substring(k, 4)

                If buffernr = "[$" Then
                    tcnr = tcnr + 4
                End If
                If bufferom = "[OM]" Then
                    tcom = tcom + 4
                End If
            End If
        Next
        Dim total As Integer = texto.Length
        total = total - tcnr - tcom - tl - cc

        Return total
    End Function

Fiz meleca ou está tudo certo?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...