|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
ADOTable.LoadFromFile
Ребят, почему-то не работает ADOTable.LoadFromFile...
выдаёт ошибку: сам файл текстовый, три значения в каждой строке разделены символом табуляции. это файл фонем от Acapella в текстовом виде, полученный экспортом Код:
беркут #b' e1 r k @ t NOUN Валентин #v V l' e n' t' i1 n NOUN виды #v' i1 d I2 NOUN вместо #v m' e1 s t @ _ NOUN все выгорело #f s' 92 v 11 g @ r' $ l @ NOUN до утра #d V u t r A1 NOUN жала #Z A l @ NOUN командной строки #k V m A1 n d n @ j s t r V k' i1 NOUN коттеджа #k V tt E1 dZ @ NOUN коттедж #k V tt E1 dZ NOUN Кто это с тобой #k t o1 E t @ s t V b o j NOUN Кто это с тобой? #k t o1 E t @ s t V b o j NOUN к броне #g b r V n' $1 NOUN над дорогой #n @2 d d V r o1 g @ j NOUN от росы #V t r V s I1 NOUN по броне #p V b r V n' $1 NOUN сосен #s o s' $ n NOUN сходите пожалуйста #s x V d' $1 t' $ p V Z A2 l @ s t @ NOUN сходите пожалуйста, #s x V d' $1 t' $ p V Z A2 l @ s t @ NOUN сходите, пожалуйста #s x V d' $1 t' $ p V Z A2 l @ s t @ NOUN сходите, пожалуйста, #s x V d' $1 t' $ p V Z A2 l @ s t @ NOUN сходи пожалуйста #s x V d' $1 p V Z A2 l @ s t @ NOUN сходи пожалуйста, #s x V d' $1 p V Z A2 l @ s t @ NOUN сходи, пожалуйста #s x V d' $1 p V Z A2 l @ s t @ NOUN сходи, пожалуйста, #s x V d' $1 p V Z A2 l @ s t @ NOUN так что же #t A2 k S t o1 Z I3 NOUN так это вы #t V k e t o v 11 NOUN туша #t u1 S @2 NOUN ... #? ? NOUN USB #j }1 I z b' i1 NOUN wi-fi #v A1 j f A j NOUN wifi #v A1 j f A j NOUN на форме есть AdoTable с названием tmptable, подключающийся к базе tmp.mdb к таблице tmp. Хочу дополнить таблицу данными из текстового файла, но сделать это не массивом, так как подорузомеваю, это будет долго обрабатываться, а сделать встроенной функцией LoadFromFile, а потом Append... вот код: Код:
tmptable.LoadFromFile(filename); tmptable.Append; в чём может быть проблема? и как сделать оптимальнее, так как словарь имеет очень большое количество фонем, на данный момент 412 тысяч... циклом будет долго, или нет??? лучше сделать циклом или как? |
#2
|
|||
|
|||
Ребята, начал делать по-другому... Вопрос: как передать Memo1.Lines в процедуру, но в формате TStringList, а то Memo1.Lines - TStrings... ((( Не хочется делать циклом дл язаписи в TStringList содержимого Memo1...
|
#3
|
||||
|
||||
Можно сначало загрузить текстовый файл в TStringList, а затем последовательно, в цикле разбирать каждую строку на слова, проверяя наличие символа Tab и добавляя получившиеся в результате данные в соответствующие колонки таблицы.Пример будет чуть попозже.
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#4
|
|||
|
|||
Сделал с помощью промежуточных TStringList добавлением сразу в один главный. Перебирая файлы словарей фонем... Конечно, сырая программа, на коленке, за 2 часа писаная, но кому-то будет полезна, кто пользуется синтезом речи Acapela на андроиде. Выбираете файлы словарей в текстовом формате (экспорт из лексикон манагера). Потом нажимаете кнопку "слить в user.userdico". Программа сливает все словари в единый, удаляет ненужные символы (# не используются на андроиде) у фонемы, а также удаляет не используемые на андроиде части речи (третья часть строки).. Потом всё это записывает в файл user.userdico. Файл нужно положить на внутреннюю карту памяти андроида в папку Компьютер\GT-N7000\Внутренняя память\acapelavoices\alyona22k_hq\NLP
исходник с исполняемым файлом выложу чуть позже, мой словарь, накопал в интернете кое-что (словари Ё, Ё-дефис, географический, общий из андроида и словарь сокращений), почти 413 тысяч слов и комбинаций. с ними произносит гораздо лучше ), лежит тут: http://zalil.ru/34007992 Файл будет удален через 10 дней после последнего скачивания. Исходник и программа в папке лежит тут: http://zalil.ru/34008016 Файл будет удален через 10 дней после последнего скачивания Надеюсь, найдётся тот, кто захочет расширить возможности программы. Хотелось бы, чтобы программа была под андроид и заливала новые слова на сервер, и обновляла их с сервера, чтобы бытро наполнять словарь усилиями пользователей... На сервере нужно сделать подтверждение правильности фонемы.. Чтобы перед добавлением в список обновления человек утвердил фонемы на обновление, прослушал их... Думаю, в день не много будет поступать... |
#5
|
||||
|
||||
Вот такой пример, хоть и с опозданием, но всё же:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 09.05.2013 в 12:16. |
#6
|
|||
|
|||
пока не качайте, онаружил неверную структуру файла, полученного... и неизвестно в какой кодировке он должен быть... кинул в папку на телефоне, а он как говорил вифи вместо вайфай, так и говорит...
если кто знает формат файла и его кодировка, буду очень благодарен! |
#7
|
|||
|
|||
ребят, не стал создавать новую тему...
вопрос такой: файл должен быть в кодировке ascii 8 bits windows cyrillic как мне правильно сохранить файл в этой кодировке? у меня сохранение делается так: StringList.SaveToFile(ExtractFilePath(Application. ExeName)+'\user.userdico'); Это он в какой кодировке сохраняет? Как сделать нужное мне сохранение, подробно подскажите кодом, пожалуйста, если возможно! что изменил в программе: теперь конвертируется, и правильно ставятся части речи в получаемом файле убираются знаки #, которые ставятся перед фонемой в словаре txt экспортом из редактора лексиконов... спросил у разработчика формат файла dic лексикона, чтобы напрямую конвертировать лексиконы, так как их редактор очень долго их грузит. процедура может затянуться до часа... и следом вопрос: при удалении дубликатов строк встроенным способом TStringList он удаляет полные дубликаты, где все строки совпадают полностью. Но если вдруг в словарях два слова с разными фонемами? Причём само слово одинаковое. Хочу оставлять слово, добавленное из последнего словаря по счёту. Как это проще сделать без перебора встроенными методами? Или всё же без перебора не обойтись? Последний раз редактировалось sorockinalex, 28.11.2012 в 20:43. |