LINUX.ORG.RU

Динамический многомерный массив строк


0

0

всё тот же вопрос ... Ди Есть записи разделенный на поля. Количество записей не известно, количество полей за ранее не известно, длинна полей не известна тип полей char. Хочится прочитать "как структуру" из файла. Возможно это или нет? (Если это просто возможно решение я найду-таки).

Не порекомендуете ли хороший учебник в сети иллюстрирующий эти проблемы?


Ответ на: комментарий от Selecter

Надо ему загрузить двумерный массив, с заранее неизвестными размерами, строк переменной длины.

watashiwa_daredeska ★★★★
()

Я бы так вот сделал(массив записей с "нумероваными" полями;-)

[line.split(SEPARATOR) for line in file(FILENAME)]

DonkeyHot ★★★★★
()

Мне однажды в качестве тестового задания прдложили примерно такую же задачу, только там не требовалось читать эту структуру, а хотя бы выяснить длину записи. Выполнить я его не смог. Но думаю, что это все-таки возможно. Смотреть надо в сторону статистического анализа....

Vinick ★★
()
Ответ на: комментарий от Vinick

> Мне однажды в качестве тестового задания прдложили примерно такую же задачу, только там не требовалось читать эту структуру, а хотя бы выяснить длину записи. Выполнить я его не смог. Но думаю, что это все-таки возможно.

Какая предлагалась структура исходных данных?

anonymous
()
Ответ на: комментарий от anonymous

>Какая предлагалась структура исходных данных?

Вообще произвольная, но "...fields tend to have similar values".
И приводился такой пример:

JOHN SMITH M 06-11-1964 XJANET JACKSON F 11-12-1977 Y

Vinick ★★
()
Ответ на: комментарий от Vinick

Если известен сепаратор между записями (напр конец строки) и сепаратор между полями в записи (напр пробел) то легко получить массив записей, каждай из котрых является масиивом полей типа string. Со структуризацией хуже, нужно знать либо номера полей (типя имя 0, фамилия 1, д-р 2 и т.д.) либо знать какое поле какого формата должно быть, некий набор правил... ну а если ничего этого не известсно, то как???????

AIv ★★★★★
()
Ответ на: комментарий от AIv

Уточняю язык C++. Вычисляется : кол-во записей , кол-во полей, длинна полей, общая длинна записи. Всй это вычисляется в процессе работы.

Требуется создать структуру для последующего чтения этих записей из файла, за один раз. Очень соблазнительно. Раз и прочитал.

kryl
() автор топика
Ответ на: комментарий от anonymous

Есть длинны полей и общая длинна записи из этих полей и они известны только после начала работы программы.

kryl
() автор топика
Ответ на: комментарий от kryl

>никаких разделителей нет

Тогда должна быть шапка, иначе это сложный философский вопрос. Если не очередной тест на IQ или требуется кряк формата файла. Там, как бы, последнее поле состоит в основном из цифирей - рой в этом направлении.

kosmonavt
()

>Не порекомендуете ли хороший учебник в сети иллюстрирующий эти проблемы?

man google

подсказка: ключевое слово STL

cvv ★★★★★
()
Ответ на: комментарий от cvv

string && vector<> ; STL ; OK спасибо дальше сам ...:)

kryl
() автор топика
Ответ на: комментарий от Vinick

Хм хм..

JOHN SMITH M 06-11-1964 X JANET JACKSON F 11-12-1977 Y

А что находится в последнем столбце? Имхо реализовать разбор файла просто.. Если в последнем столбце может быть только одна буква ( не больше), то достаточно ориенитроваться на дату. Она всегда в одном формате xx-xx-xxxx. Найдешь две даты в строке, считай разделил на ячейки..

Наверняка еще какие-нибудь сложности будут )) Но думаю на perl или sh это сделать не проблема.

PS. Имхо на прпактике надо между строчками \n ставить.

OxiD ★★★★
()
Ответ на: комментарий от OxiD

Я думаю что \n потерялись изза неподходящего режима форматирования

cvv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.