Чтение/Запись файла, как реализовать следующее...

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

Чтение/Запись файла, как реализовать следующее...

Сообщение |kerish| » 02.06.2005 (Чт) 22:47

У меня имеется файл вида:
"[MESSAGE=ID1]
bla-bla-bla
bla-bla-bla
bla-bla-bla
[MESSAGE=ID2]
bla-bla-bla
bla-bla-bla
[MESSAGE=ID3]
bla-bla-bla
bla-bla-bla
bla-bla-bla
bla-bla-bla"
И так далее мегабайт 20...
Мне будет необходимо из программы быстро редактировать этот файл, то есть удалять, например, [MESSAGE=ID2] вместе с содержимым, добавлять новое [MESSAGE=ID295].
Как это реализовать?
Пробовал через input и output, но работает слишком медленно (читай никак).
Пробовал Binary, но если я удаляю какое-либо [MESSAGE] с содержимым, то в файле вместо него остается пустой незаполненный кусок.
Подумайте есть какие-нибудь решения...

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 02.06.2005 (Чт) 23:54

Так выйдет тоже на тоже, что и Open As Binary делать.
Если я убью кусок текста в файле там останется пустой кусок, а мне надо, чтобы всё, что идёт дальше сдвинулось назад, чтобы не было пустоты.

er_admin
Новичок
Новичок
 
Сообщения: 35
Зарегистрирован: 04.06.2004 (Пт) 21:25

Сообщение er_admin » 03.06.2005 (Пт) 8:03

а может стоит сделать через БД?

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 03.06.2005 (Пт) 11:03

er_admin Так мне и надо, только сделать свою БД.

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Re: Чтение/Запись файла, как реализовать следующее...

Сообщение codemaster » 03.06.2005 (Пт) 11:16

|kerish| писал(а):И так далее мегабайт 20...
Мне будет необходимо из программы быстро редактировать этот файл, то есть удалять, например, [MESSAGE=ID2] вместе с содержимым, .


Бысто на VB на 20 Mb явно не получится
как вариант создаеш коллекцию (массив) при старте программы добавляеш
туда свои [Message] при закрытии пишеш все в файл.
//<-
Mit freundlichen Grüßen
//->

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

Re: Чтение/Запись файла, как реализовать следующее...

Сообщение Andrey Fedorov » 03.06.2005 (Пт) 15:01

codemaster писал(а):Бысто на VB на 20 Mb явно не получится


А при чем тут VB-то?

codemaster писал(а):как вариант создаеш коллекцию (массив) при старте программы добавляеш туда свои [Message] при закрытии пишеш все в файл.


Вряд ли хорошо держать все в памяти - она не безгранична...

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

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

Сообщение ism » 04.06.2005 (Сб) 1:56

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

ЗЫ
Сортировка теряется.

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 04.06.2005 (Сб) 10:41

Как обрезать файл под Binary???

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.06.2005 (Сб) 14:31

SetEndOfFile (хоть под Binary, хоть под чем)
Изображение

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 04.06.2005 (Сб) 15:40

Всем спасибо, всё получилось.

Олег Козлов
Обычный пользователь
Обычный пользователь
 
Сообщения: 52
Зарегистрирован: 26.05.2005 (Чт) 15:56
Откуда: Нижний Тагил

Сообщение Олег Козлов » 05.06.2005 (Вс) 5:56

Можно попробовать с INI-файлами поработать (поищи в Инете - много статей есть, как с ними работать).
Только формат ini файл несколько другой:

[Section1]
param1=Value1
param2=value2
[Section2]
param3=Value3
param4=Value4
......
[SectionN]
paramX=ValueX
paramY=ValueY

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 05.06.2005 (Вс) 7:35

Я понимаю, но INI тут явно не подойдет.
У меня в каждой секции большие объемы данных, которые не влезут в строчки INI-файла.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 178

    TopList