Текст имеющий вид:
- Код: Выделить всё
xxxxxx xx xxxx x
xxxx xxxx x xxxxxxx
x x x xx
Привести к виду:
- Код: Выделить всё
xxxxxx xx xxxx x
xxxx xxxx x xxxxxxx
x x x xx
Длинна, количество слов и строк и интервалы между колонками взяты произвольно.
xxxxxx xx xxxx x
xxxx xxxx x xxxxxxx
x x x xx
xxxxxx xx xxxx x
xxxx xxxx x xxxxxxx
x x x xx
Если конечная цель - создать ровную табличку для просмотра блокнотом и в каждой ячейке не более одного слова, то нужно множественные пробелы заменить на один, текст разбить на строки, строки на слова, для каждой колонки найти самое длинное слово, остальным словам соответствующей колонки добавлять необходимое количество пробелов.RayShade писал(а):Разные редакторы по разному интерпретуируют последовательные пробелы, символы tab и так далее. Вдобавок, форматирование такого рода сильно зависит от используемого шрифта (моноширинный/переменный).
'убираем лишние пробелы
Do
pLen = Len(sText)
sText = Replace(sText, " ", " ")
Loop Until pLen = Len(sText)
Dim MaxLengths() As Integer
Dim Lines() As String
Dim Words() As String
'разбиваем на строки
Lines = Split(sText, vbCrLf)
'оределяем кол-во столбцов
Words = Split(Lines(0)," ")
x = UBound(Words)
Redim MaxLengths(x)
'находим максимальные длины слов для каждого столбца
For x=0 to UBound(Lines)
Words = Split(Lines(x)," ")
For y = 0 To UBound(Words)
If Len(Words(y))>MaxLengths(y) Then MaxLengths(y) = Len(Words(y))
Next
Next
'получаем наконец отформатированный текст
For x=0 to UBound(Lines)
Words = Split(Lines(x)," ")
For y = 0 To UBound(Words)
s = s & Words(y) & Space(MaxLengths(y) - Len(Words(y) + 1) '+1 чтобы максимальные слова не липли к соседям
Next
s = s & vbCrLf
Next
Dim ofn As OPENFILENAME
ofn.lStructSize = Len(ofn)
ofn.hwndOwner = Form1.hwnd
ofn.hInstance = App.hInstance
ofn.lpstrFilter = "Исполняемые файлы (*.exe)" + Chr$(0) + "*.exe" + Chr$(0)
ofn.lpstrFile = Space$(254)
ofn.nMaxFile = 255
ofn.lpstrFileTitle = Space$(254)
ofn.nMaxFileTitle = 255
ofn.lpstrInitialDir = CurDir
ofn.lpstrTitle = "Our File Open Title"
ofn.flags = 0
Dim a
a = GetOpenFileName(ofn)
If (a) Then
Text1.Text = Trim$(ofn.lpstrFile)
MsgBox "Файл " & Text1.Text & " добавлен в список.", vbInformation
Else
'MsgBox "Cancel was pressed"
End If
Saturn.65 писал(а):alibek спасибо!
Это то я нашел. Все усложняется тем, что список файлов помещается в ListBox с путями, а надо, чтобы при клике, в другом ListBoх отображались только имена без путей. Пускай даже и с расширением.
Хакер писал(а):Не или, а только.
Text1.Text = ofn.lpstrFileTitle
Private Sub Text7_Change()
iInput = Text7.Text
Text7.Text = Replace(iInput, ".exe", "")
End Sub
Сейчас этот форум просматривают: AhrefsBot и гости: 53