Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> import *.dat format in *.csv, перевод формата файла 
V
    Опции темы
chief39
Дата 26.9.2007, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Цитата(Valeria @  26.9.2007,  14:57 Найти цитируемый пост)
а вот на том файле, что мне прислали не идет, т.к. он очень большой, там порядка 50 полей а реально я насчитала 28,  но и с ними не заработало.

Так. Теперь спокойно и по порядку.
Там 50 или 28? Если насчитала 28 а там должнобыть 50 - тогда звонок мериканцу - "ПОДРОБНЕЕ! что в том файле и как! Сколько СИМВОЛОВ на какое поле?"

Цитата(Valeria @  26.9.2007,  14:57 Найти цитируемый пост)
и у меня так же есть файл, описывающий число полей и их размер, не знаю, как он мне может пригодится? 

Размер полей - В СИМВОЛАХ? Уточняй у америки

Цитата(Valeria @  26.9.2007,  14:57 Найти цитируемый пост)
вообщем, пишу американцу, что ничего не получилось... 

Пиши то, что я выше сказал.

Цитата(Valeria @  26.9.2007,  16:21 Найти цитируемый пост)
кстати, некоторые колонки не содержат пробелов, а идут подряд .... 

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


Цитата(_Y_ @  26.9.2007,  16:08 Найти цитируемый пост)
А у меня возникла вот такая идея, основанная на предположении, что у Вас колонки фиксированной ширины (число символов в колонке) и разделены пробелами.  

Идея: Пробелы, разделяющие колоноки находятся в каждой строке в одних и тех же положениях. Надо пройти весь файл два раза:

    * Читая его первый раз определить положения, в которых пробелы имеются во всех строках. 
    * Просмотреть полученный список "разделяющих позиций". Если две или больше позиции идут подряд, очевидно, что никакой колонки между ними нет. Такие случаи надо считать одним разделителе.
    * Читая файл во второй раз, заменять пробелы на месте разделителей запятыми.


Игры разума...  smile 
"Это же не наши методы!" Тут чёткий файл, зачем гадать и бояться спросить формат? smile
А допуская ситуацию, когда в неком поле попадётся некое типичное дефол значение типа "STD. FORMAT" - получим новую колонку и начнётся полный пердимонокль smile)

Лера, труси из мерикоса чёткий ФОРМАТ ФАЙЛА!!! До одного места сколько и сего там в памяти, БД, лукошке, етц - ТЫ ЧИТАЕШЬ ИЗ ФАЙЛА(!), поэтому тебе нужен ЧЁТКИЙ ФОРМАТ ФАЙЛА от производителя этого самого файла. Всё остальное - извращения.

И не вздумай писать ему всякую .... типа 
Цитата(Valeria @  26.9.2007,  14:57 Найти цитируемый пост)
что ничего не получилось... 
, а то минус влеплю smile))
Не посрами отечество  smile 




--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
_Y_
Дата 26.9.2007, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Цитата(Valeria @ 26.9.2007,  16:21)
одно поле может содержать несколько слов

В "огромном" файле вероятность того, что во всех строках, в одной колонке, разделяющий слова пробел будет находиться на одном и том же месте (или в остальных колонках слова будут очень короткими и на соответствующем месте будут дополняющие пробелы), крайне мала. 

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

Добавлено через 7 минут и 52 секунды
Цитата(chief39 @ 26.9.2007,  16:55)
Тот, кто формирует файл - должен чётко обозначивать его формат "до копейки". Иначе - это всё танцы с бубном наобум.

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

Если есть возможность получить информацию - хорошо. Если нет - текстовый файл не загадка. Можно даже прописывать отдельныю процедуру распознавания на каждую колонку. Но, конечно возникает ворпрос о параметре удовольствие-от-результата-деленное-на-затраченные-усилия.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Valeria
Дата 27.9.2007, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 16.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



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

там описание 71 поля в виде: название поля  CHAR(10) - и это явно не число символов!!! вряд ли мне это поможет, только лишь, я знаю, сколько реально полей должно быть.



PM MAIL ICQ   Вверх
Valeria
Дата 27.9.2007, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 16.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



заработало smile
проблема была в некорректном завершении dat файла, поэтому программа отрабатывала и зависала в конце.
теперь нормально запятыми разделяет, только вот оставшиеся пустые поля мне придется самой искать, имея описание и примерно догадываться по содержанию, где они должны быть.
PM MAIL ICQ   Вверх
chief39
Дата 27.9.2007, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Цитата(_Y_ @  26.9.2007,  17:02 Найти цитируемый пост)
Но, конечно, абсолютную уверенность дает только страховой полис.

Или формат. На то и протоколы с форматами smile
Только в случае со "сгоревшей будкой" - тогда да  smile

Цитата(Valeria @  27.9.2007,  10:19 Найти цитируемый пост)
и сколько занимают места в памяти,

Гм... это интересно. Одно и то же число может занимать разные объёмы памяти. Если это было писано не под джаву - то даже банальный интежер может быть разным под разными платформами. Кроме того, число можно по разному задать.

Цитата(Valeria @  27.9.2007,  10:19 Найти цитируемый пост)
название поля  CHAR(10) - и это явно не число символов!!!

обычно char(10) - это именно число символов smile)) 



--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
_Y_
Дата 27.9.2007, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Valeria, если не все колонки разделены - то искать можно только "по контексту". Тогда вопрос - во всех ли файлах одинаков список колонок? Если нет, то за счет чего - за счет того, что:
 
  • колонки разбросаны кое-как?
  • существует некая общая последовательность колонок, но в некоторых файлах некоторые колонки просто отсутствуют, а общая последовательность расположения колонок при этом не нарушена?




--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0774 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.