Строки длиннее 64К

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SmarT
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 18.12.2002 (Ср) 19:39
Откуда: Королёв, Россия

Строки длиннее 64К

Сообщение SmarT » 14.09.2003 (Вс) 7:49

Народ, есть способы сделать стрингу длинее 64К ? (нужно 300).
Я знаю, что такая тема где-то тут была, но поиск не работает, поэтому пишу снова.
http://smarticq.net - Все про и для ICQ.

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

Сообщение Amed » 14.09.2003 (Вс) 8:39

Попробуй засунуть данные сначала в несколько string, а потом из них в один Variant...

По-моему, Variant поддерживает хранение до 2 Гб данных ;-)

GoGosha
Постоялец
Постоялец
 
Сообщения: 642
Зарегистрирован: 02.08.2002 (Пт) 9:14
Откуда: Russia

Сообщение GoGosha » 14.09.2003 (Вс) 9:09

Возможно подойдет массив байт
http://poetry.mooo.com
http://poetry.myboard.info
«Человек есть нечто, что до́лжно превзойти» (Ф. Ницше)

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

Сообщение Amed » 14.09.2003 (Вс) 9:16

ИМХО, массив байт хужее, :) чем одна Variant :)

SmarT
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 18.12.2002 (Ср) 19:39
Откуда: Королёв, Россия

Сообщение SmarT » 14.09.2003 (Вс) 9:17

пасиб, я тоже подумал про массив и использую его, но как-то у меня не ладится :). variant не подойдет, т.к. я не знаю точной длины файла.
Суть вообще в том, чтобы куском одного бинарного файла заменить кусок другого, при этом остальных данных не трогать.
http://smarticq.net - Все про и для ICQ.

GoGosha
Постоялец
Постоялец
 
Сообщения: 642
Зарегистрирован: 02.08.2002 (Пт) 9:14
Откуда: Russia

Сообщение GoGosha » 14.09.2003 (Вс) 9:30

Ну это просто!
Массив, содержащий первый файл
Массив, содержищий второй файл
CopyMemory

Если куски не одинакового размера, то придётся ещё третий массив делать
http://poetry.mooo.com
http://poetry.myboard.info
«Человек есть нечто, что до́лжно превзойти» (Ф. Ницше)

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

Сообщение Amed » 14.09.2003 (Вс) 9:36

Тээкс... Не понимаю, в чём проблема...

Ты ведь знаешь, какой длины кусок ты собрался заменять?

Const FilePartLenght as Long = 100

Dim ByteCont As Byte '!!! Переменная, содержащая байт, только в формате Byte !!!
Dim BytePos as Long 'Порядковый номер байта

Open FileName1 For Binary As #1 'Открываем файл, ИЗ которого берём кусок
Open FileName2 For Binary As #2 'Открываем файл, В который мы этот кусок пишем
For BytePos=1 to FilePartLenght
Get #1, BytePos, ByteCont 'Берём байт
Put #2, BytePos, ByteCont 'Пишем байт
Next BytePos
Close #2 'Закрываем файл 2
Close #1 'Закрываем файл 1

Всё ведь понятно?
Записываем в файл FileName2 кусок диапазоном 1-100 байт из файла FileName1...

Или я чего-нибудь недопонял? :roll:

SmarT
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 18.12.2002 (Ср) 19:39
Откуда: Королёв, Россия

Сообщение SmarT » 14.09.2003 (Вс) 10:40

Огромное спасибо!!!!!!!!!
Пасиб!!!!
Чувак, ты гений!!!!!
Спасибо!
http://smarticq.net - Все про и для ICQ.

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

Сообщение Amed » 14.09.2003 (Вс) 11:23

Да не за что собственно :-)

А я уже "Продвинутый пользователь" :wink:

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

Сообщение GSerg » 15.09.2003 (Пн) 7:04

Я, конечно, извиняюсь...
Но только строки фиксированноой длины имеют ограничение 64К.
Строки переменной длины его не имеют.
Так что не вижу проблемы вообще.
Код: Выделить всё
Dim a As String
a = Space$(300000)
get #1,position,a
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

SmarT
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 18.12.2002 (Ср) 19:39
Откуда: Королёв, Россия

Сообщение SmarT » 15.09.2003 (Пн) 14:04

Да, действительно..Тоже пасиб!
http://smarticq.net - Все про и для ICQ.


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

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

Сейчас этот форум просматривают: AhrefsBot, Google-бот, SemrushBot, Yandex-бот и гости: 10

    TopList