AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / Perguntas / 79575437
Accepted
DriveCarefully
DriveCarefully
Asked: 2025-04-15 22:37:36 +0800 CST2025-04-15 22:37:36 +0800 CST 2025-04-15 22:37:36 +0800 CST

vb6: dividir arquivo de texto unicode em arquivos menores de tamanho máximo especificado

  • 772

Tenho um arquivo grande de texto, linha por linha, terminado com chr(13) no Windows. Quero armazenar o texto no campo memo do arquivo mdb do Access, que tem um limite máximo de tamanho de apenas 64 KB.

O arquivo de texto contém caracteres Unicode.

Como posso usar o método de entrada de linha do VB6 para dividir o texto em vários arquivos? Ou existe uma alternativa melhor para fazer isso em vez de escrever um programa?

Exemplo de texto:

1 00:00:01,960 --> 00:00:04,880 哦哦,向前一迎就上

2 00:00:04,880 --> 00:00:07,600 去。我都跟你讲,拉球摩擦是需要

3 00:00:07,600 --> 00:00:10,480 顶,没有顶它,它不是一个

4 00:00:10,480 --> 00:00:13,280 单纯的往上的动作,它需要一边

5 00:00:13,280 --> 00:00:16,240 往前顶,找到球的时候给一个小的动

Public Sub splitFile()

  Dim i, t1, t2, c1, c2, k As Long
  Dim TextLine, OutLine
  Dim thisfile
  Dim partCount

  thisfile = "speechByParts.txt"
  
  partCount = 0
  OutLine = ""
  Open thisfile For Input As #1   ' Open file.
  Do While Not EOF(1)   ' Loop until end of file.
    Line Input #1, TextLine   ' Read line into variable.
    
    Debug.Print TextLine
    OutLine = OutLine & TextLine & Chr(13)

    If Len(OutLine) > 60000 Then
      partCount = partCount + 1
      WriteFile "speechByParts" & partCount & ".txt", OutLine
      OutLine = ""

    End If

  Loop
  
  If OutLine > "" Then
    partCount = partCount + 1
    WriteFile "speechByParts" & partCount & ".txt", OutLine
  End If

  Close #1   ' Close file

End Sub
vb6
  • 1 1 respostas
  • 51 Views

1 respostas

  • Voted
  1. Best Answer
    Brian M Stafford
    2025-04-16T23:51:25+08:002025-04-16T23:51:25+08:00

    Existem duas maneiras comuns de ler e escrever arquivos de texto contendo Unicode: usar o File System Object (FSO) ou usar ActiveX Data Objects (ADO). Aqui está um exemplo usando ADO. Para simplificar, o código grava cada linha do arquivo de entrada em um novo arquivo. Você precisará definir uma referência à `Microsoft ActiveX Data Objects 2.8 Library`.

    Public Sub splitFile()
       Dim inputStream As ADODB.Stream
       Dim outputStream As ADODB.Stream
       Dim data As String
       Dim i As Integer
       
       Set inputStream = New ADODB.Stream
       inputStream.Open
       inputStream.LoadFromFile "C:\TEMP\speechByParts.txt"
       
       Do Until inputStream.EOS
          data = inputStream.ReadText(adReadLine)
          Debug.Print data
          
          i = i + 1
          Set outputStream = New ADODB.Stream
          outputStream.Open
          outputStream.WriteText data, adWriteLine
          outputStream.SaveToFile "C:\TEMP\speechByParts" & i & ".txt", adSaveCreateOverWrite
          outputStream.Close
       Loop
    
       inputStream.Close
    End Sub
    
    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve