Я извлекаю различные переменные пользовательского ввода из проекта PowerPoint (режим киоска) и записываю данные в текстовый файл. Текстовый файл может обрабатывать только ограничение в 69 символов (включая пробелы, знаки препинания, специальные символы ... весь свободный текст). Я нашел и изменил некоторый код для удовлетворения большинства моих потребностей, если текст представляет собой простую структуру предложений, однако проблема, с которой я остаюсь, заключается в том, как обрабатывать такие элементы, как веб-адреса или расположения файлов (которые могут работать дольше, чем 69). символов в длину). Другая проблема заключается в том, чтобы разбить слово с дефисом, если часть слова останется под правилом 69 символов.
пример: пользователь вводит контактную информацию. Kealoha Taylor Patrovillanovastronsky, (808) -555-5555, kt_p22@htecheng.org, https://www.htecheng.org/finance/htech/d8/cpt554/patrovillanovastonsky/" В этом примере только веб-сайт содержит 72 символа.
Я хочу получить код для записи следующего кода:текстовый файл.
Kealoha Taylor Patrovillanovastronsky, (808)-555-5555, kt_p22@
htecheng.org, https://www.htecheng.org/finance/htech/d8/cpt554
/patrovillanovastonsky/
Очевидно, что каждая строка может отличаться в зависимости от длины имени, адреса электронной почты или веб-адреса (если он есть)
Код, который у меняследует (это записало бы 3 отдельных строки в блокнот):
'''
Sub Send2text()
Dim Str1, STRin, STRin1, STRin2, STRin3, STRin4, STRout As String
Dim ArrWords, ArrWords1, ArrWords2, ArrWords3, ArrWord4, STRWord As Variant
Dim FilePath As String
STRin = Slide4.UserInput.Text
STRin1 = Slide4.UserInput1.Text
STRin2 = Slide4.UserInput2.Text
STRin3 = Slide4.UserInput3.Text
STRin4 = Slide4.UserInput4.Text
ArrWords = Split(STRin, " ")
ArrWords1 = Split(STRin1, " ")
ArrWords2 = Split(STRin2, " ")
ArrWords3 = Split(STRin3, " ")
ArrWords4 = Split(STRin4, " ")
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''' Open the text file and prepare it for updates ''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
FilePath = "C:\Documents|History.txt"
TextFile = FreeFile
Open FilePath For Append As TextFile
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''' begin writing updates ''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
For Each STRWord In ArrWords
If Len(STRout) + Len(STRWord) <= 69 Then
If STRout = "" Then STRout = STRWord Else STRout = STRout & " " & STRWord
ElseIf Len(STRout) + Len(STRWord) >= 69 Then
If Strl = "" Then
Str1 = STRout
Print #TextFile, Str1
STRout = " " & STRWord ' the indent is needed for the paragraph marker
Str1 = ""
GoTo Line1
End If
End If
Line1:
Next STRWord
Print #TextFile, STRout
STRout = ""
For Each STRWord In ArrWords1
If Len(STRout) + Len(STRWord) <= 69 Then
If STRout = "" Then STRout = STRWord Else STRout = STRout & " " & STRWord
ElseIf Len(STRout) + Len(STRWord) >= 69 Then
If Strl = "" Then
Str1 = STRout
Print #TextFile, Str1
STRout = " " & STRWord ' the indent is needed for the paragraph marker)
Str1 = ""
GoTo Line2
End If
End If
Line2:
Next STRWord
Print #TextFile, STRout
STRout = ""
For Each STRWord In ArrWords2
If Len(STRout) + Len(STRWord) <= 69 Then
If STRout = "" Then STRout = STRWord Else STRout = STRout & " " & STRWord
ElseIf Len(STRout) + Len(STRWord) >= 69 Then
If Strl = "" Then
Str1 = STRout
Print #TextFile, Str1
STRout = " " & STRWord ' the indent is needed for the paragraph marker)
Str1 = ""
GoTo Line3
End If
End If
Line3:
Next STRWord
Print #TextFile, STRout
STRout = ""
Close TextFile
End With
End Sub
'' '
Очень признателен за вашу помощь. С уважением, Роберт