0
- 10.01.2018 - 21:30
|
Ситуевина: есть многострочные текстовые файлы, вся инфа на латинице. В обработке создаю объект "Текст", открываю программно любой файл - КоличествоСтрок()=1 и ПолучитьСтроку(1)= "ая". Пробовал на разных компах, платформа 7.70.027, в любой конфигурации. Уже убился, не пойму где собака порылась? | | |
1
- 10.01.2018 - 21:36
| (0) Что-нибудь с кодировкой, надо бы посмотреть файл на байтовом уровне. | | |
2
- 10.01.2018 - 22:19
|
(1) Кодировку пробовал и DOS и WIn. В блокноте все нормально показывает с виндовыми шрифтами. Попробовал обработать через AddIn.V7TextFile. Те же яйца, вид сбоку. Единственный прогресс - определяет правильно количество строк в файле. А выводит (по шаблону "№"+ном+"-я строка = "+СокрЛП(Стр)+"."): №1-я строка = яю. №2-я строка = . №3-я строка = . №4-я строка = . №5-я строка = . №6-я строка = . №7-я строка = . №8-я строка = . №9-я строка = . №10-я строка = . и т.д. | | |
3
- 10.01.2018 - 22:21
|
А вот так выглядят данные в блокноте: BootDevice=\Device\HarddiskVolume1 BuildNumber=7601 BuildType=Multiprocessor Free Caption=Microsoft Windows 7 Professional CodeSet=1251 CountryCode=7 CreationClassName=Win32_OperatingSystem CSCreationClassName=Win32_ComputerSystem CSDVersion=Service Pack 1 CSName=HP CurrentTimeZone=180 DataExecutionPrevention_32BitApplications=TRUE DataExecutionPrevention_Available=TRUE DataExecutionPrevention_Drivers=TRUE DataExecutionPrevention_SupportPolicy=2 и т.д. | | |
4
- 10.01.2018 - 22:43
| С каких пор блокнот стал средством побайтного просмотра? Например, заголовок из трех байт EF BB BF в начале файла с кодировкой UTF-8 виден в блокноте? А нифига! Так что вперед, скачивать FAR и смотреть чудо-файл его вьювером в HEX-режиме. Вангую, что там что-то не то с символом перевода строки - не все системы используют для этого комбинацию 0D 0A. Файл откуда берется? Можно его живьем выложить, а не копипаст из блокнота? | | |
5
- 10.01.2018 - 22:44
|
Ну вроде разобрался. Файлы были созданы в Unicode. | | |
6
- 10.01.2018 - 22:46
| Что и требовалось доказать. | | |
7
- 10.01.2018 - 22:49
|
(4) Файлы являются выводом результата методов утилиты ком.строки wmic. Выложил бы, да не понял как это можно сделать здесь? | | |
8
- 10.01.2018 - 22:58
|
(7) Стандартным методом: закачать на любой файлообменник и выложить ссылку. Если, конечно, нужда еще не отпала - ведь разобрался же? | | |
9
- 10.01.2018 - 23:03
|
(8) В принципе понял, что 7-ка не любит Unicode и не стал с ним бодаться. Я пошел другим путем, с помощью параметра /RECORD вместо /OUTPUT получаю нужный файл в виндовой кодировке. Спасибо за участие! | | |
10
- 10.01.2018 - 23:09
| После 10 секунд поиска: https://helpf.pro/faq/view/495.html | | |
11
- 11.01.2018 - 13:37
|
(10) Это все подошло бы, если бы получилось считать строки из файла. А они, к сожалению, возвращаются пустыми. Я уже переделал обработку формирования файлов и считывание данных идет без запинки. | | |
12
- 11.01.2018 - 14:57
| (11)Посмотри в сторону FileSystemObject, много лет пользуюсь. И кодировку твою сьест и скорость по сравнению с 1с-ным объектом много выше, особенно на больших файлах | | |
13
- 12.01.2018 - 00:03
| (12) А можно пример кода для 1С? Файлы-то небольшие, от нескольких строк до нескольких десятков. Но их много - тысячи. Может быть и имеет смысл альтернативу использовать. | | |
14
- 12.01.2018 - 08:23
| Цитата:
https://infostart.ru/public/18816/ | | |
15
- 12.01.2018 - 08:31
| 14-perpetum >+ - там же есть добавление перекодировки и для символов украинской раскладки клавиатуры. | | |
16
- 12.01.2018 - 08:57
|
Любую перекодировку средствами Adodb предлагал "Смахарба". Ниже - эксперимент от Смахарба - как бы пишет в utf-8, но впереди прописывает 3 лишних символа и в конце - символ конца строки, результат ещё нужно выкусывать. Пример от "Смахарба": Стрим = СоздатьОбъект("Adodb.Stream"); Стрим.Type = 2; Стрим.Mode= 3; Стрим.charset="utf-8"; Стрим.Open(); Стрим.WriteText(СокрЛП(Наименование),1); Стрим.SaveToFile("c:\testread_.txt",2); Стрим.Close(); | | |
17
- 12.01.2018 - 12:08
|
Там же - в тему примера от "Смахарба" есть ссылка - от нашего VZ ? :-) - цитирую оттуда: nickVZ (nickVZ) 10 24.01.09 11:56 Для автора. Есть такой вполне даже штатный для виндов объект: ADODB.Stream. И у этого объекта есть параметр Charset, задающий кодировку. Попробуй. http://msdn.microsoft.com/en-us/library/ms808793.aspx | | |
18
- 12.01.2018 - 19:02
|
(17) Спасибо! Попробую и такой вариант. Кстати, может быть в курсе, как в условии WQL-запроса передать символ "\"? А то вариант WHERE ExecutablePath="c:\windows\svchost.exe" не канает - пишет ошибка в запросе. Если вместо полного пути указать имя каталога или файла - ошибки не будет. Просто не найдет нужное соответствие. Я так понял, что засада в слэше. | | |
19
- 12.01.2018 - 19:07
|
(18) P.S. Ошибки в условии нет. Файл svchost.exe в конкретном случае находится в каталоге "c:\windows", а не в "c:\windows\system32". | | |
20
- 12.01.2018 - 19:24
|
18-US1C >Ну, вообще-то ExecutablePath - каталог (путь исполнения запроса), а не конкретный файл.... Если убрать "svchost.exe" - работает? | | |
21
- 12.01.2018 - 19:50
| (20) Дело в том, что ExecutablePath является свойством алиаса Process и возвращает полный путь вместе с исполняемым файлом. Т.е. когда я получаю все процессы, там ExecutablePath="c:\windows\svchost.exe" у конкретного процесса. Но я хочу отсечь ненужные процессы. | | |
22
- 12.01.2018 - 20:22
|
Где-то мне встречалось, что обращение к процессам формируется через "\\", а не через "\", как указатель обычного каталога (не каталога процесса). - Как вариант: ExecutablePath="c:\\windows\\svchost.exe" ExecutablePath='c:\\windows\\svchost.exe' - точно не помню... - с SQL, WQL не работал... :-) | | |
23
- 12.01.2018 - 20:52
| (22) Такой вариант пробовал - не прошло. Обратный слэш пробовал. Больше ничего на ум не приходит, чем можно заменить или "закавычить" слэши. | | |
24
- 12.01.2018 - 22:07
| Только гуглить явно не пробовал - там синтаксис вообще другой: https://social.technet.microsoft.com...um=winserverTS http://www.cycotec.de/index.php/prog...xecutable-path Получается, надо что-то вроде: WHERE "ExecutablePath LIKE '%c:\\windows\\svchost.exe%'" | | |
25
- 13.01.2018 - 21:35
| (24) Супер! Спасибо, дружище, работает. | | |
26
- 13.01.2018 - 21:46
|
(24) Вторая ссылка вообще в тему. Убивает сразу 2-х зайцев. Потому как сначала я получаю ID-шники процессов, а потом посылаю команду на завершение нужного. Еще раз спасибо. | |
| Интернет-форум Краснодарского края и Краснодара |