Visual Basic: Нужен алгоритм нумерации строк в поле ввода

  • У меня проблема с таким вот текстом:


    1Пример текста


    2Пример текста


    3Пример текста


    4Пример текста


    Нужен алгоритм (желательно не только Controll или Modus (.bas), a именно уже готовая форма -> что бы лишниx заморочек не было) генератора, что бы из вышестоящего текста получилось такое:


    1 Пример текста
    2 Пример текста
    3 Пример текста
    4 Пример текста


    а) лишние (пустые) строки должны программой автоматом распознаваться и стираться
    б) генератор должен узнавать (если такое вообще возможно), стоит первым цифта или буква, и если цифра (должен конечно распозновать 1, 2-x, и до бесконечности -значное число), то должен между цифрой и текстом после нее выставлять пробел.


    Для чего мне это? Я к сожалению программы с подобной функцией не нашел, а нужна она мне для обработки немерянно большого кол-ва текста из верxнего примера. И я не знаю как это лучше всего сделать... Нумерацию текста я мог бы сделать, а вот распознование цифры или текста нет, а мне нужно именно вместо 1Пример текста -> 1 Пример текста (у меня к сожалению только передний вариант, да еще и пробелы между строками).


    Ну вот и все, очень нуждаюсь в помощи... желательно на vb 6.0 ну если по другому не идет, то VB.NET


    Спасибо

  • тебе обязательно на VB?
    различать буквы/цифры пили в сторону regular expressions.
    Принцип примерно такой проверяешь первый знак цифра или буквы, если цифра смотрим следующий, если буква то меняем букву на пробел и букву.


    Если на один раз то имхо проще будет чем нибудь типа Notepad++ сделать. не на много дольше времени займет.

  • Если на один раз то имхо проще будет чем нибудь типа Notepad++ сделать. не на много дольше времени займет.


    да, я сейчас двумя одновременно пользуюсь (Notepad++ и еще одна Noname)... помогает..


    А что касается программулики, то лучше было бы VB, я в другиx не разбираюсь

  • 'на форме элементы Text1 и пр


    'для Text1 код:


    Option Explicit
    Dim a As String


    Private Sub Form_Load()
    Open "C:\1.txt" For Input As #1
    Do Until EOF(1)
    Line Input #1, a
    If Mid(a, 1, 1) = " " Then Text1.Text = Text1.Text & " "
    Text1.Text = Text1.Text & Mid(a, 1, 11) & " " & Mid(a, 31, 5) & vbCrLf
    Loop
    Close #1


    Open "C:\2.txt" For Output As #2
    Print #2, Text1.Text
    Printer.FontSize = 11
    Printer.Print Text1.Text
    Printer.EndDoc
    Print a
    Close #2
    End
    End Sub


    'а если подумать то можно и изменить код исходя из тезисов:





    'Пустая строка ("") и нулевая строка (vbNullString) считаются эквивалентными. Единственный способ их различить – проверять StrPtr на равенство нулю.(... p.s. для API)




    'Поскольку длина строки хранится явно, функция Len выполняется мгновенно. В частности, проверять длину строки на равенство нулю – быстрее, чем проверять строку на равенство 'пустой/нулевой.



    ссылка на Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем msalbert63 ().