|
|
|
Чтение CSV-файлов. Какой максимально быстрый способ? | ☑ | ||
|---|---|---|---|---|
|
0
Пол Ньюман
25.12.08
✎
18:19
|
ADO? XBase? Что-ниббудь их читает? Или может есть преобразовыватель из csv в dbf или в xls на худой конец
|
|||
|
1
Господин ПЖ
25.12.08
✎
18:19
|
DTS в скуле...
|
|||
|
2
Нуф-Нуф
25.12.08
✎
18:35
|
эксель их читает
|
|||
|
3
Пол Ньюман
25.12.08
✎
18:35
|
Что ДТС в скуле? Читает, преобразовывает? Что вообще такое DTS? Как им воспользоваться программно?
|
|||
|
4
Нуф-Нуф
25.12.08
✎
18:35
|
в экселе можно конвертнуть в xls
|
|||
|
5
Пол Ньюман
25.12.08
✎
18:36
|
(2) Программно имею ввиду, через Excel-application очень долго.
|
|||
|
6
Пол Ньюман
25.12.08
✎
18:36
|
(4) Ну это да, на крайний случай.
|
|||
|
7
Господин ПЖ
25.12.08
✎
19:00
|
(3) в гугле забанили?
|
|||
|
8
b_ru
25.12.08
✎
19:02
|
максимально быстрый - как текстовый файл
|
|||
|
9
Fragster
гуру
25.12.08
✎
19:05
|
если правильный csv - то ado с провайдером text/csv будет самый быстрый
|
|||
|
10
Fragster
гуру
25.12.08
✎
19:05
|
(9) и удобный
|
|||
|
11
Михей
25.12.08
✎
19:06
|
ТабличныйДокумент + РазложитьСтрокуВМассив()
и пагнале! |
|||
|
12
Пол Ньюман
25.12.08
✎
19:10
|
(7) Понятия не имею где тебя забанили.
(9) Хм, попробую. (11) Тоже чертовски интересно, возможно и нтересней всего. Благодарю 9 и 11. |
|||
|
13
у лю 427
25.12.08
✎
19:12
|
да и экселем через оле будет быстро - работаешь то не с каждой строкой, а со всем csv файлом сразу...
|
|||
|
14
Пол Ньюман
25.12.08
✎
19:15
|
(13) Да, быстро, только юзерам прийдется открывать и сохранять в экселе. не развалятся конечно, но если можно без лишних операций, то лучше наверное без них?
|
|||
|
15
Пол Ньюман
25.12.08
✎
19:16
|
А, не, зачем через ОЛЕ, адо быстро работает, хотя попробую 9, если прокатит, все будет замечательно.
|
|||
|
16
у лю 427
25.12.08
✎
19:16
|
открой через оле и через оле сохрани...
кстати, через ДБФ в этом случае проще и быстрее будет .... |
|||
|
17
Пол Ньюман
25.12.08
✎
19:23
|
(16) Что значит "через дбф будет проще"?
|
|||
|
18
Fragster
гуру
25.12.08
✎
19:25
|
(15,16) а нах сохранять? как открыл, так и тяни данные... а если для дальнейшего адо - то и не надо...
|
|||
|
19
Пол Ньюман
25.12.08
✎
19:26
|
(18) Не могу в гугле найти пример как через АДО прочитать csv
|
|||
|
20
у лю 427
25.12.08
✎
19:28
|
(17) открыл указанный ХЛС, сохранил в ДБФ, открыл ДБФ и понесся...
(18) если ХЛС - 100 строк - проще его прочитать, а если в нем как у меня - 10 листов по 50 тыс строк.... Замаешься... А через ДБФ - мухой обрабатывается... |
|||
|
21
Живой Ископаемый
25.12.08
✎
19:32
|
Я сделал свой выбор - читать как текст, разбирать строку на поля при помощи регулярных выражений.. Правильное выражение завтра поищу...
|
|||
|
22
Пол Ньюман
25.12.08
✎
19:33
|
(20) Так в чем и был вопрос. Я не знал что Excel умеет в дбф преобразовывать. Спасибо большое! Наверное это оптимально.
|
|||
|
23
pectopatop
25.12.08
✎
19:33
|
(19) connectionstrings.com - тут посмотри. там вся фича в строке подключения
|
|||
|
24
Господин ПЖ
25.12.08
✎
19:34
|
>>Я не знал что Excel умеет в дбф преобразовывать
точно в гугле забанили... |
|||
|
25
Пол Ньюман
25.12.08
✎
19:35
|
Просто делаю перенос из одной программы, в которой по документации есть возможность сохранять в формате дбф, написал под дбф код, а он в дбф не сохраняет по непонятным причинам, только в сиэсвэ.
|
|||
|
26
Живой Ископаемый
25.12.08
✎
19:36
|
||||
|
27
Пол Ньюман
25.12.08
✎
19:37
|
(26) Такого не будет, неоткуда ";" внутри значения взяться.
|
|||
|
28
Живой Ископаемый
25.12.08
✎
19:39
|
(27) тогда как текст и разбить строку в массив подстрок...
|
|||
|
29
Пол Ньюман
25.12.08
✎
19:42
|
(23) Спасибо, посмотрю
(28) Проверю насколько быстро будет работать, может тоже интересным быть через ЧтениеТекста одинэсовский. |
|||
|
30
NcSteel
25.12.08
✎
19:45
|
(7) Википедия )
DTS — формат звука, созданный Digital Theater System, конкурирующий, но схожий с Dolby Digital. Формат DTS использует меньший уровень сжатия, чем Dolby, так что теоретически он звучит лучше, что доказывают на практике диски, на которых записаны дорожки и в DD, и в DTS. Формат DTS Stereo практически идентичен Dolby Surround. DTS поддерживает как 5.1-канальный, так и 7.1-канальный варианты звука. Также называется DTS Surround Sound. |
|||
|
31
Пол Ньюман
25.12.08
✎
19:48
|
(30) Во, то что надо, огромное спасибо господину пэжэ
|
|||
|
32
NcSteel
25.12.08
✎
19:52
|
Data Transformation Service , видимо он имел вот это. Но сам ищу нормальное определение все найти не могу )))
|
|||
|
33
NcSteel
25.12.08
✎
19:53
|
DTS (Data Transformation Services). "Службы преобразования данных" – инструментальное средство SQL Server для преобразования данных между различными системами.
Для страждущего ) |
|||
|
34
у лю 427
25.12.08
✎
19:57
|
строки с текстухой через эксель в дбф - аккуратно надо.... там засада есть классная...
|
|||
|
35
Господин ПЖ
25.12.08
✎
20:06
|
совсем дятлы что ли? написано же dts для sql. Совсем тупеют, каждому ссылку надо в клюв положить...
http://www.sql.ru/articles/mssql/2004/04021001SQLServer2kDTSpart1.shtml |
|||
|
36
NcSteel
25.12.08
✎
20:09
|
(35) Ты в (30) Улыбку не увидел?
|
|||
|
37
Пол Ньюман
25.12.08
✎
20:23
|
По моему психическое здоровье дятловода оставляет желать лучшего.
|
|||
|
38
Ковычки
25.12.08
✎
20:31
|
(9) и напорешся на грабель...
если в пределах разумного то быстрее всего ексель, Пит прав |
|||
|
39
Пол Ньюман
25.12.08
✎
20:45
|
В принципе этот код для тысячи строк работает довольно быстро, секунд 8-10, иногда эксель-аппликейшн только запускается столько времени, посему оставлю так, но для общего развития ветка полезна, всем кроме нервозного господина спасибо ещё раз.
ЧтениеФайла = Новый ЧтениеТекста; //КодировкаТекста[мКодировкаФайла] ЧтениеФайла.Открыть(ФайлПуть, ,,,Ложь); ТекстЗаголовка = ЧтениеФайла.ПрочитатьСтроку(); Колонки = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(ТекстЗаголовка, Символы.Таб); Для Каждого Колонка Из Колонки Цикл Если Колонка = "" Тогда Прервать КонецЕсли; СтруктураЗначенийСтроки.Вставить(Колонка); КонецЦикла; ТекстЗаголовка = ЧтениеФайла.ПрочитатьСтроку(); Пока ТекстЗаголовка <> Неопределено Цикл Значения = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(ТекстЗаголовка, Символы.Таб); Индекс = 0; Для Каждого Зн Из СтруктураЗначенийСтроки Цикл Значение = Значения[Индекс]; Если ЗначениеЗаполнено(Значение) Тогда Если Лев(Значение, 1) = """" Тогда Значение = Сред(Значение, 2, СтрДлина(Значение) - 2); ИначеЕсли СтрЧислоВхождений(Значение, ".") = 2 Тогда Значение = Дата(Число(Сред(Значение, 7)), Число(Сред(Значение, 4, 2)), Число(Лев(Значение, 2))); Иначе Значение = Число(Значение); КонецЕсли; КонецЕсли; СтруктураЗначенийСтроки.Вставить(Зн.Ключ, Значение); Индекс = Индекс + 1; КонецЦикла; ПрочитатьДанныеСтроки(СтруктураЗначенийСтроки); ТекстЗаголовка = ЧтениеФайла.ПрочитатьСтроку(); КонецЦикла; |
|||
|
40
Господин ПЖ
25.12.08
✎
21:55
|
(36) неа
|
|||
|
41
Fragster
гуру
25.12.08
✎
22:33
|
(39) тогда уж такая заляпуха будет быстрее: Книга знаний: Преобразование csv в таблицу значений
|
|||
|
42
Пол Ньюман
25.12.08
✎
22:41
|
(41) "А то достали уже с этим вопросом." Хехе :)
- А за счет чего это будет быстрее, поясни плиз. |
|||
|
43
Fragster
гуру
25.12.08
✎
22:42
|
(42) а, не протупил... у тя та же фигня... подумал сначала про чтение через ексель, промотав большой кусок кода :) я сегодня пьяный, мне можно ;))
|
|||
|
44
Fragster
гуру
25.12.08
✎
22:43
|
(42) если есть дополнения по поводу приведения к стандарту - пжалста, дополни
|
|||
|
45
Пол Ньюман
25.12.08
✎
22:43
|
ЧтениеТекста работает медленнее чем ТекстовыйДокумент(аналог Текста в 8ке)? Я почему-то считал наоборот.
|
|||
|
46
Fragster
гуру
25.12.08
✎
22:43
|
(45) там для 7.7
|
|||
|
47
Пол Ньюман
25.12.08
✎
22:44
|
(43) неее, Эксель.аппликейшн очень тормозная вещь.
|
|||
|
48
Пол Ньюман
25.12.08
✎
22:44
|
(46) да понял, потому и пишу что текстовыйДокумент - аналог
|
|||
|
49
Ковычки
25.12.08
✎
23:03
|
(47) ексельАпликейшен очень быстрая вещь, быстрее любых адо-шмадо
|
|||
|
50
Пол Ньюман
25.12.08
✎
23:13
|
Наверное я не умею её готовить, но построчное считывание данных через Cellls().Value на 1000 строк данных тормозит безбожно, да и простая логика подсказывает, что тормозной оле-механизм никак не может быть быстрее адо-шмадо
|
|||
|
51
Ковычки
25.12.08
✎
23:58
|
(50) врет твоя логика... ровно на бутылку коньяка
|
|||
|
52
Fynjy
26.12.08
✎
00:19
|
Народ я знаю самый быстрый способ и без адо ...
readfile = filesys.OpenTextFile("c:\1.txt", 1, false) mystring = readfile.ReadLine() или myallstring = readfile.ReadAll() ... Куда быстрее DTS ... |
|||
|
53
DancingShadow
26.12.08
✎
09:38
|
(50) зачем построчно?
|
|||
|
54
DancingShadow
26.12.08
✎
09:38
|
+53 лучше посимвольно
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |