Строки и символы

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Шнурок
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 12.11.2004 (Пт) 19:28
Откуда: Санкт-Петербург

Строки и символы

Сообщение Шнурок » 24.02.2005 (Чт) 18:22

Как из текстового файла в каждой строчке удалить первые несколько символов? (от 6 до 9 - можно выбирать в комбобоксе)
02.01.2004

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 24.02.2005 (Чт) 18:39

В чем проблема-то? К каждой строке применяешь

Right$(строка, Len(строка)-число)

где число - то, сколько символов нужно удалить.

Шнурок
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 12.11.2004 (Пт) 19:28
Откуда: Санкт-Петербург

Сообщение Шнурок » 24.02.2005 (Чт) 18:43

а как узнать кол-во строк в файле
02.01.2004

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

Сообщение GSerg » 24.02.2005 (Чт) 18:54

Притырить их все...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 24.02.2005 (Чт) 20:35

А количество строк в файле равно количеству vbCrLf + 1... А ищутся vbCrLf через InStr...

ism
Постоялец
Постоялец
 
Сообщения: 337
Зарегистрирован: 12.12.2001 (Ср) 12:59
Откуда: Russia, Saint-Petersburg

Сообщение ism » 25.02.2005 (Пт) 1:18

А ты не читай файл полностью, читай построчно (Line Input #Номер_канала, строка), записывай результат Right$(строка, Len(строка)-число) во временный файл для каждой строки. Дойдешь до конца удали первый файл и переименуй второй.

Qubicz
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 16.10.2004 (Сб) 20:21
Откуда: Санкт-Петербург

Сообщение Qubicz » 25.02.2005 (Пт) 9:39

Код: Выделить всё
Dim st$, arr$()
Open "C:\11.txt" For Binary As #1
st = Input(LOF(1), #1)
Close #1
arr = Split(st, vbCrLf)
MsgBox "Количество строк " & UBound(arr)

Тоже впихнул :roll:

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 25.02.2005 (Пт) 9:50

2 Qubicz
Твой привет хорош для маленьких файлов.
Например, я открывал файл 8.2 Mb аж целых 9 секунд. Скорость сам понимаешь не очень.
Используй FSO (данный файл прочитал за 1-1.5 сек)

Вот пример:
Код: Выделить всё
    Dim String_Read As String
    Dim FSO As New FileSystemObject, FileManager
   
    Set FileManager = FSO.OpenTextFile("c:\11.txt", ForReading, False)
        Do While FileManager.AtEndOfStream <> True
            String_Read = FileManager.ReadLine
            'String_Read - прочитанная строка
        Loop
    Set FileManager = Nothing
   

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 25.02.2005 (Пт) 10:54

Sirik писал(а):2 Qubicz
Твой привет хорош для маленьких файлов.
Например, я открывал файл 8.2 Mb аж целых 9 секунд. Скорость сам понимаешь не очень.


Давно известно - не надо пытаться прочесть файл "за один заглот".
Читать надо блоками или даже построчно - все одно быстрей бы было...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

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

Сообщение GSerg » 25.02.2005 (Пт) 10:56

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 25.02.2005 (Пт) 10:58

Andrey Fedorov писал(а):
Sirik писал(а):2 Qubicz
Твой привет хорош для маленьких файлов.
Например, я открывал файл 8.2 Mb аж целых 9 секунд. Скорость сам понимаешь не очень.


Давно известно - не надо пытаться прочесть файл "за один заглот".
Читать надо блоками или даже построчно - все одно быстрей бы было...


Как раз, - надо читать файл в байтовый массив, и в нём менять ручками первые несколько байт каждой строки. Напомню, строки разделяются Chr(13)+Chr(10) (или наоборот :)). Файлы за один заглот бинарно читаются не быстро, а очень быстро! ;)
Можно и не бинарно попробовать обрабатывать, конечно (через Input)...

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 25.02.2005 (Пт) 11:05

2 Amed
Насколькоя понял, речь идёт именно о работе с текстовым файлом.
Так почему бы не использовать уже готовые вещи для этих целей?

Читай как хочешь, но только не всё сразу.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 25.02.2005 (Пт) 11:08

Amed писал(а):Как раз, - надо читать файл в байтовый массив, и в нём менять ручками первые несколько байт каждой строки. Напомню, строки разделяются Chr(13)+Chr(10) (или наоборот :)).


Amed писал(а):Файлы за один заглот бинарно читаются не быстро, а очень быстро! ;) Можно и не бинарно попробовать обрабатывать, конечно (через Input)...


Зависит от размера файла... При больших размерах будет тормоз.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

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

Сообщение GSerg » 25.02.2005 (Пт) 11:10

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 25.02.2005 (Пт) 20:58

Да-да, GSerg, я именно это и имел в виду... ;)

Эх, боты... Такие они, такие...


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

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

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

    TopList