Переименовывание файла Dbf

Тема в разделе "1C и всё что с ней связано", создана пользователем any-oz, 6 дек 2007.

Статус темы:
Закрыта.
  1. any-oz

    any-oz Гость

    Создаю файл dbf, но так как есть ограничение на его длину в 8 символов (XBase), то приходится переименовывать, мне надо подставить единичку в начало файла:

    КаталогВыгрузки = ПутьВывода+"\";
    ФС.УстТекКаталог(КаталогВыгрузки);

    Файл = ФС.НайтиПервыйФайл(ИмяФайла+".DBF");

    Если ПустаяСтрока(Файл)=0 Тогда
    Попытка
    ФС.ПереименоватьФайл(Файл,"1"+Файл,1);
    Исключение
    Сообщить("Не удалось переименовать Файл выгрузки!");
    КонецПопытки;
    КонецЕсли;

    Помогите, что я делаю не так?!
     
  2. jj_mail

    jj_mail Гость

    а какую ошибку выдает ?
     
  3. any-oz

    any-oz Гость

    А никакой ошибки не выдает.
    Просто как был файл со старым именем, так и остается с ним :D
     
  4. jj_mail

    jj_mail Гость

    убери попытку и посмотри, что пишет
     
  5. kaa

    kaa Гость

    <!--QuoteBegin-any-oz+6:12:2007, 16:15 -->
    <span class="vbquote">(any-oz @ 6:12:2007, 16:15 )</span><!--QuoteEBegin-->Файл = ФС.НайтиПервыйФайл(ИмяФайла+".DBF");
    [snapback]88629" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Наверника возвращает что-то типа C:\jjjjj\jjjjj\kkkkk\ИмяФавйла.dbf

    <!--QuoteBegin-any-oz+6:12:2007, 16:15 -->
    <span class="vbquote">(any-oz @ 6:12:2007, 16:15 )</span><!--QuoteEBegin-->ФС.ПереименоватьФайл(Файл,"1"+Файл,1);
    [snapback]88629" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    В итоге 1C:\jjjjj\jjjjj\kkkkk\ИмяФавйла.dbf - и ничеко небудет так как такого файла нет
    Нужно вычлинить из файла Имя файла и каталог

    ФС.ПереименоватьФайл(Файл,Каталог+"\1"+Файл,1);
     
  6. any-oz

    any-oz Гость

    Смотрю в Отладчике:
    КаталогВыгрузки = "C:\Temp\"
    ФС.УстТекКаталог(КаталогВыгрузки) = Ошибка в выражении!
    Файл = "682C0612.DBF"
    "1"+Файл = 1682С0612.DBF
    ФС.ПереименоватьФайл(Файл,"1"+Файл,1) = Ошибка в выражении!
     
  7. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    КомандаСистемы("move /y "+КаталогВыгрузки+ИмяФайла+" "+КаталогВыгрузки+"1"+ИмяФайла);
     
  8. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    вот так
    UnLoadDirectory = "E:\Transfer";
    FS.SetCurrentDirectory(UnLoadDirectory);
    FileName = "Avail.dbf";
    File = FS.FindFirstFile(FileName);
    FS.MoveFile(File,"1"+File,1);

    или так
    UnLoadDirectory = "E:\Transfer";
    FS.SetCurrentDirectory(UnLoadDirectory);
    FileName = "Avail*";
    File = FS.FindFirstFile(FileName+".dbf");
    FS.MoveFile(File,"1"+File,1);

    точно работает
     
  9. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    А что касается вот такой конструкции,
    Файл = "682C0612.DBF"
    "1"+Файл = 1682С0612.DBF
    наверняка обусловлено тем, что имя файла превысило 8 символов,
    вообще манера старых программистов не называть файлы русскими буквами и делать имя длиннее 8 символов (отрыжка DOS) далеко не плоха, не находите ?
     
  10. kaa

    kaa Гость

    <!--QuoteBegin-any-oz+6:12:2007, 18:51 -->
    <span class="vbquote">(any-oz @ 6:12:2007, 18:51 )</span><!--QuoteEBegin-->Смотрю в Отладчике:
    КаталогВыгрузки = "C:\Temp\"
    ФС.УстТекКаталог(КаталогВыгрузки) = Ошибка в выражении!
    Файл = "682C0612.DBF"
    "1"+Файл = 1682С0612.DBF
    ФС.ПереименоватьФайл(Файл,"1"+Файл,1) = Ошибка в выражении!
    [snapback]88666" rel="nofollow" target="_blank[/snapback]​
    [/quote]


    КаталогВыгрузки = "C:\Temp\"
    Файл = "682C0612.DBF"
    "1"+Файл = 1682С0612.DBF
    ФС.ПереименоватьФайл(КаталогВыгрузки+"\"+Файл,"1"+Файл,1);
    а так ?
     
  11. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    А чем мой вариант плох? Принимаю любую критику ;)
     
  12. any-oz

    any-oz Гость

    ;) :blink: :blink: Ничего из предложенного не помогает :(
     
  13. jj_mail

    jj_mail Гость

    а файл с исходным именем вобще-то существует по указанному пути ?
     
  14. kaa

    kaa Гость

    мля
    Код (Text):
    //*******************************************
    Процедура СоздатьФайл()
    Если ПустоеЗначение(Каталог)=1 Тогда
    Предупреждение("Не выбран каталог выгрузки!",20);
    Возврат;
    КонецЕсли;


    ДБФ = СоздатьОбъект("XBase");
    ДБФ.ДобавитьПоле("CODE", 1, 19, 3);
    ДБФ.ДобавитьПоле("NAME", 2, 25, 0); 
    ДБФ.СоздатьФайл(Каталог+"\mydb.dbf");
    ДБФ.Записать();
    ДБФ.ЗакрытьФайл();   
    КонецПроцедуры
    //******************************************************************************/
    Процедура Переименовать()
    ФС.УстТекКаталог(СокрЛП(Каталог));
    Результат = "";
    Результат = ФС.НайтиПервыйФайл("*.DBF*");
    Если Результат<>"" Тогда
    ФС.ПереименоватьФайл(СокрЛП(Каталог)+"\"+Результат,СокрЛП(Каталог)+"\1"+Результат,1);
    КонецЕсли;
    КонецПроцедуры
    //******************************************************************************/
    Процедура ПриНачалеВыбораЗначения(Элемент)
    Если Элемент="Каталог" Тогда
    Путь="";
    Если ФС.ВыбратьКаталог(Путь,"Выберете каталог",20)=1 Тогда
    Каталог=Путь;
    КонецЕсли;
    КонецЕсли;  
    КонецПроцедуры
    ВСЕ РАБОТАЕТ!!!
     
  15. any-oz

    any-oz Гость

    Всех благодарю!
    Дело было в том, что перед переименованием я не закрывала файл dbf ;)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей