работа с текстовым файлом

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Сергей K.
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.04.2003 (Чт) 9:18

работа с текстовым файлом

Сообщение Сергей K. » 10.04.2003 (Чт) 9:51

Подскажите, пожалуйста, как можно читать не строки текстового файла
а блоки из нескольких строк и перемешивать и х в случайном порядке.
Т.е. задача такая: есть текстовый файл из нескольких сот блоков текстовых, каждый блок состоит из примерно десятка строк. Начинается блок символом &START! а заканчивается &END!
Буду признателен за подсказку или пример кода.
В книге про бэйсик, что я читаю, ничего не сказано про текстовые блоки.
Спасибо

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.04.2003 (Чт) 9:58

Неудивительно, что не сказано :)
Текстовые блоки к вопросам программинга не относятся :)

Суть в том, чтобы нагло читать файл посточно. Если текущая взятая строка начинается со &START!, то заводить новый элемент в массиве и пихать все последующие строки туда до тех пор, пока очередная взятая строка не начнётся с &END!. Код сам пиши, так оно лучше :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Сообщение serix » 10.04.2003 (Чт) 11:10

текст в RichTextBox, а там
txt = RichText1.text
dim stropen as long
dim strclose as long
strclose =1
stropen = InStr(strclose, txt, "&START!")
strclose = InStr(stropen, txt, "&END!")
' выделение блока
RichText1.SelStart = stropen - 1
RichText1.SelLength = strclose - stropen + 1

А с ним длай что хочешь...
ZU

Сергей K.
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.04.2003 (Чт) 9:18

Сообщение Сергей K. » 10.04.2003 (Чт) 16:51

конечно, буду стараться сам.
А как сортировать?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 10.04.2003 (Чт) 16:58

Создай невидимый ListView, залей в него все что надо отсортировать, поставь .Sorted = true и слей все содержимое обратно ;)

Сергей K.
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.04.2003 (Чт) 9:18

Сообщение Сергей K. » 11.04.2003 (Пт) 8:59

RayShade писал(а):Создай невидимый ListView, залей в него все что надо отсортировать, поставь .Sorted = true и слей все содержимое обратно ;)


Так, наверное, не получится . Потому что надо перемешивать не строки, а блоки из нескольких строк между собой (блоками).

Сергей K.
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.04.2003 (Чт) 9:18

Сообщение Сергей K. » 11.04.2003 (Пт) 12:15

serix писал(а):текст в RichTextBox, а там
txt = RichText1.text
dim stropen as long
dim strclose as long
strclose =1
stropen = InStr(strclose, txt, "&START!")
strclose = InStr(stropen, txt, "&END!")
' выделение блока
RichText1.SelStart = stropen - 1
RichText1.SelLength = strclose - stropen + 1

А с ним длай что хочешь...


а что такое RichTextBox и чем он отличается от просто TextBox

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 11.04.2003 (Пт) 12:17

По поводу того, что не получится - тк кто же просит сразу все заливать? Сортируй все поблочно если хочешь - заливай блоки и сортируй их там.



А насчет того, чем отличается - в двух словах:

RTB позволяет отображать Rich Text Format файлы, содержащие разметку и форматирование. Более подробно - в MSDN, точнее в ту ее часть где расскзывается про форматы файлов ;) Или в хелпник MS Word.

Сергей К..
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 11.04.2003 (Пт) 17:40

Сообщение Сергей К.. » 11.04.2003 (Пт) 17:45

RayShade писал(а):А насчет того, чем отличается - в двух словах:
RTB позволяет отображать Rich Text Format файлы, содержащие разметку и форматирование. Более подробно - в MSDN, точнее в ту ее часть где расскзывается про форматы файлов ;) Или в хелпник MS Word.


Хорошо, ну а как это элемент подключить и разместить на форме?

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 12.04.2003 (Сб) 2:17

в Toolbox кликни правой кнопкой и выбери Components, там отметь строку Microsoft Rich Textbox Control 6.0, жми ОК. Компонент появится в Toolbox.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Сергей К..
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 11.04.2003 (Пт) 17:40

Сообщение Сергей К.. » 13.04.2003 (Вс) 0:06

serix писал(а):текст в RichTextBox, а там
txt = RichText1.text
dim stropen as long
dim strclose as long
strclose =1
stropen = InStr(strclose, txt, "&START!")
strclose = InStr(stropen, txt, "&END!")
' выделение блока
RichText1.SelStart = stropen - 1
RichText1.SelLength = strclose - stropen + 1

А с ним длай что хочешь...


А как с ним сделать что я хочу.
Т.е. файл исходный я читаю, момещаю в RichText1.text
Вижу его, а как записать выделенный фрагмент в массив
и то же самое со следующим фрагментом?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 4

    TopList