Имя: Пароль:
1C
Наука
ИИ: v8: Функция РазделитьФайл
0 Serg_1960
 
16.10.08
09:47
Ежели кто в Москве проездом будет и зайдет "случайно" в фирму 1С, - то пусть попросит исправить хелп в СП о методах РазделитьФайл() и ОбъединитьФайлы()... и передайте: англичане дула кирпичом не чистят, ибо от этого ружья целкость теряют...

Исходный текст:

Например, для разделения файла на части, размером каждой равной одному мегабайту, следует выполнить следующий код:
РазделитьФайл("C:\Windows\Temp\Presentation.ppt", 1024 * 1024 )
В результате получим несколько файлов:
C:\Windows\Temp\Presentation.ppt.001
C:\Windows\Temp\Presentation.ppt.002
...
Надо заменить на:
Например, для разделения файла на части, размером каждой равной одному мегабайту, следует выполнить следующий код:
РазделитьФайл("C:\Windows\Temp\Presentation.ppt", 1024 * 1024 )
В результате получим несколько файлов:
C:/Windows/Temp/Presentation.ppt.001
C:/Windows/Temp/Presentation.ppt.002
...
1 foxey
 
16.10.08
09:51
А в чем разница? Наклон черточек иной?
2 v77
 
16.10.08
09:56
Дайте автору ник поносить. А то ищо чо нибудь такое напишет.
3 DeoxyS
 
16.10.08
09:58
все звоню нуралиеву )
4 Serg_1960
 
16.10.08
09:59
У меня обмен накрылся медным тазом из-за.... (нет слов)
// Было (и не работало):
           ИменаФайлов = РазделитьФайл(ИмяФайлаСоообщения,1024*1024*100);
           Для Индекс = 0 По ИменаФайлов.Количество()-1 Цикл
               ПолноеИмяФайла = ИменаФайлов[Индекс];
               ИмяФайла = РаботаСФайлами.ПолучитьИмяФайлаИзПолногоПути(ПолноеИмяФайла);
               ПочтовоеСообщение.Вложения.Добавить(ПолноеИмяФайла, ИмяФайла);
               УдалитьФайлы(ПолноеИмяФайла);
           КонецЦикла;
// Что-бы работало правильно:
           ИменаФайлов = РазделитьФайл(ИмяФайлаСоообщения,1024*1024*100);
           Для Индекс = 0 По ИменаФайлов.Количество()-1 Цикл
               ПолноеИмяФайла = ИменаФайлов[Индекс];
               ПолноеИмяФайла = СтрЗаменить(ПолноеИмяФайла,"/","\"); // Вот где собака зарыта :(
               ИмяФайла = РаботаСФайлами.ПолучитьИмяФайлаИзПолногоПути(ПолноеИмяФайла);
               ПочтовоеСообщение.Вложения.Добавить(ПолноеИмяФайла, ИмяФайла);
               УдалитьФайлы(ПолноеИмяФайла);
           КонецЦикла;
5 MetaDon
 
16.10.08
10:00
>Ненавижу 1С
Дык и не работай с 1С, выбирай лучшее :)
6 Serg_1960
 
16.10.08
10:04
(5) А кто сказал, что полку ненавидящих 1С прибыло? Я всего, лишь, ник попросил - он мне очень нравится :)
7 ДенисЧ
 
16.10.08
10:05
интересно, это сколько титана должно не хватать в организме, чтобы под виндой получит имя файла C:/Windows/Temp/Presentation.ppt.001 ?
8 Serg_1960
 
16.10.08
10:09
Коллеги, поймите правильно: мне кажется, что предупреждать надо, о том что методам РазделитьФайл() и ОбъединитьФайл() "все равно" какой слеш возвращать - "прямой" или "обратный" - ПОТОМУ ЧТО МНЕ-ТО НЕ ВСЕ РАВНО!!!
9 b_ru
 
16.10.08
10:15
да вроде бы 1С и не гарантирует, что их детище будет работать под wine. Это ведь в нем дело? Вот и ругайтесь с Этерсофтом или сообществом...
10 Serg_1960
 
16.10.08
10:23
(9) Да причем тут ОС... разговор об другом... Я могу написать: РаботаСФайлами.ПолучитьИмяФайлаИзПолногоПути("D:NameFile.txt") и получить имя файла с буквой диска... Но "D:/NameFile.txt" - ни в какие ворота не лезет...
11 Salvador Limones
 
16.10.08
10:24
(8) Я-то здесь ни при чем? Да? Я же просто скинул методы. :-(
12 ДенисЧ
 
16.10.08
10:28
Я так и не понял, откуда этот титанозависимый взял обратные слеши...
13 Serg_1960
 
16.10.08
10:28
(11) Сорри, коллега... камушек не в Ваш огород.. К Вам никаких "претензий" - спасибо за своевременную подсказку... Это я "тормознул"...
14 Serg_1960
 
16.10.08
10:30
(12) Денис, ей богу, сам не пойму, почему у меня "не те" слеши в именах :(
15 ДенисЧ
 
16.10.08
10:33
(14) Где? Какие имена??
Написал тупо РазделитьФайл("e:\programmer\1cv7.md", 1024*1024, "e:\programmer");
Оно молча разделило файл как сказано. Нигде никаких обратных слешей не появилось. ЧТЯДНТ?
16 Serg_1960
 
16.10.08
10:40
(15) Денис, будь добр, напиши, что сообщения у тебя возвращают:

ИменаФайлов = РазделитьФайл(("e:\programmer\1cv7.md", 1024*1024);
Для Индекс = 0 По ИменаФайлов.Количество()-1 Цикл
  Сообщить(РаботаСФайлами.ПолучитьИмяФайлаИзПолногоПути(ИменаФайлов[Индекс]);
КонецЦикла;
17 ДенисЧ
 
16.10.08
10:44
Оно сообщает
{Форма.Форма(17,12)}: Переменная не определена (РаботаСФайлами)
       Сообщить(<<?>>РаботаСФайлами.ПолучитьИмяФайлаИзПолногоПути(ИменаФайлов[Индекс]));
18 Serg_1960
 
16.10.08
10:46
Сорри, замени на строку Сообщить(ИменаФайлов[Индекс]) РаботаСФайлами - это из типовой УПП
19 ДенисЧ
 
16.10.08
10:48
хм...
/me ушёл искать пепел :-(
20 Serg_1960
 
16.10.08
10:48
Я хочу имена возвращаемых файлов посмотреть...
21 Ненавижу 1С
 
гуру
16.10.08
10:50
(0) 1000$ устроит цена вопроса?
22 YauheniL
 
16.10.08
10:53
(4) Мне кажется, что это "неправильные" слеши возвращает функция РаботаСФайлами.ПолучитьИмяФайлаИзПолногоПути().
23 Serg_1960
 
16.10.08
10:54
(21) "Побойся бога... Грабить нищих артистов! Небо не видало еще таких КЮ"(с) Кин-Дза-Дза... Давайте поторгуемся: за половинку КЦ согласны?
24 Serg_1960
 
16.10.08
11:02
(22) Напомню рабочий алгорит
ПолноеИмяФайла = ИменаФайлов[Индекс];
ПолноеИмяФайла = СтрЗаменить(ПолноеИмяФайла,"/","\");
ИмяФайла = РаботаСФайлами.ПолучитьИмяФайлаИзПолногоПути(ПолноеИмяФайла);

PS: "У этих неправильных пчел (РазделитьФайл и ОбъединитьФайл) - неправильный мёд"... "Дерябнуть? Заметьте - не я первый это предложил"
25 Serg_1960
 
16.10.08
11:05
Денис, скажите у Вас такая-же фигня, что и у меня? А то я, до сих пор думаю, что у меня что-то не так...

(21) А если я предложу пепелац в придачу, - уступите?
26 ДенисЧ
 
16.10.08
11:08
(25) да. 8.1.11.67
27 Serg_1960
 
16.10.08
11:14
(26) Спасибо! Значит все-таки вечером я был не настолько плох, как утром показалось :) Пойду по узлам зависшие обмены, рег.задания и процессы убирать...

ALL: Всем спасибо - тема закрыта.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн