Вставка данных

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

Вставка данных

Сообщение Fridx » 22.01.2006 (Вс) 19:57

При изменении данных в файле посредством Put #1, strok, MyDat, если изменять самую последнюю строку, которая типа пустая и её как такавой нет, файл увеличится как раз на размер этой строки. Но как быть если надо не изменить, а вставить новую строку в середину файла?
Можно конечно перед вставкой скопировать последнюю строку на новую, затем предпоследнюю на место последней, потом пердпредпоследнюю на место предпоследней и т.д. до середины файла, где появится одна лишняя строка, в замен которой записываем новую. Но может есть способ попроще??

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 23.01.2006 (Пн) 0:51

Есть. Но в принципе такой-же но выглядит проще чем ты описал.
InsertPos - позиция, куда вставляем.
InsertData - данные, которые вставляем.

Пусть файл уже открыт As Binary


Код: Выделить всё

Dim Buffer As String 'Буфер он и в Африке буфер.
Buffer = Space(LOF(1)) '
Get #1,1, Buffer
Buffer = Left(Buffer,InsertPos-1)+InsertData+Right(Buffer,Len(Buffer)-(InsertPos-1))
Put #1,1,Buffer


Или тебе ышо проще надо :?: :D
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Fridx
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 18.01.2006 (Ср) 4:03

Сообщение Fridx » 23.01.2006 (Пн) 1:09

Благодарен :wink:


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

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

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

    TopList