Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Размер массива... Как?

1.6K
12 июля 2004 года
Unexpected
137 / / 09.12.2002
Собственно проблема такая:
Надо загнать в файл массив variant-ов...
Всё прекрасно пишется и читается.. Вот только одно "НО"
Для хоть минимального контроля как бы узнать размер того, что пишется? А в идеале получить это в том виде, в каком оно пишется в файл(црц, там, добавить...).. Впрочем, зная размер - можно и прочитать обратно.. Но вот как получить размер?

ЗЫ: Интересует какой-нить простой метод.. Можно, конечно, посчитать все элементы, прикинуть размер каждого, сделать поправку на размер дополнительной инфы о типе переменной и т.д....... но не хотелось бы. ;)
258
12 июля 2004 года
SergeySV
1.5K / / 19.03.2003
Ты о каком размеры массива толкуешь? о физ. размере что-ли, в байтах?
Если тип массива varinat, то получается каждый элемент может иметь любой тип, поэтому либо можно грубо прикинуть, с верху, взяв самый толстый тип данных * кол-во элементов, либо бежать по всему массиву и опред. тип данных каждого элемента, и складывать , складывать, складывать
1.6K
12 июля 2004 года
Unexpected
137 / / 09.12.2002
Цитата:
Originally posted by SergeySV
Ты о каком размеры массива толкуешь? о физ. размере что-ли, в байтах?

О нём самом...

Цитата:
Если тип массива varinat, то получается каждый элемент может иметь любой тип, поэтому либо можно грубо прикинуть, с верху, взяв самый толстый тип данных * кол-во элементов

Не катит.. размер файла и так предполагается порядка 300 метров.. А там и текст, и числа... Жирно будет.

Цитата:
либо бежать по всему массиву и опред. тип данных каждого элемента, и складывать , складывать, складывать

Фигово :-(

Есть ещё способ.. (позиция в файле после)-(позиция в файле до).
Криво, но больше ничего не придумалось...

7.6K
20 июля 2004 года
under
11 / / 20.07.2004
У чём напряг я, ежели чесно непонял?
1) на кой фиг тебе нуно знать етот размер?
2) Зачем масив VAR на 200 метров?
3) Если опустить первые два, в чём проблема перебора?
7.6K
20 июля 2004 года
under
11 / / 20.07.2004
У чём напряг я, ежели чесно непонял?
1) на кой фиг тебе нуно знать етот размер?
1.6K
21 июля 2004 года
Unexpected
137 / / 09.12.2002
Цитата:
Originally posted by under
1) на кой фиг тебе нуно знать етот размер?

На данный момент уже не нужен. Проблему обошел с помощью LOC()
Вообще же в файле хранится груда этих массивов и, чтобы прочитать произвольный из них, надо знать где он начинается и заканчивается.
Просто привык сначала определять - где и сколько, а затем только писать в файл. В барсике же приходится делать всё наоборот: сначала писать, а потом смотреть - куда попало :(

Цитата:
2) Зачем масив VAR на 200 метров?

Не массив.. Файл в целом.. Сначала думал писать туда массивы.. Потом, правда, опытным путём было установлено, что это слишком медленно... да и накладно (много лишней инфы) так что теперь потрошу их и записываю поэлементно. Тут считать уже и по ходу дела можно..

Цитата:
3) Если опустить первые два, в чём проблема перебора?

Да, в общем, ни в чём.. Кроме того, что:
А) Это нужно делать ;)
Б) Там для каждого типа элемента есть неопределённое (переменное) количество дополнительной инфы добавляемой барсиком.. Объём которой надо ещё определять опытным путём. По крайней мере описания таких массивов я не нашел (хотя не особо и искал :))

7.6K
21 июля 2004 года
under
11 / / 20.07.2004
А почему нельзя положить в отдельный файл, каждый масив? да и скорости поприбавиться при поиске!:???:
1.6K
21 июля 2004 года
Unexpected
137 / / 09.12.2002
Цитата:
Originally posted by under
А почему нельзя положить в отдельный файл, каждый масив? да и скорости поприбавиться при поиске!:???:

Нельзя. Не я определяю условия...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог