Конференция "Основная" » Пробел в начале имени файла... [D7, Win95/98, WinXP]
 
  • dimak (26.04.08 23:28) [0]
    Имя файла имеет пробел в начале(про который я не знаю)...
    Мои действия:
    .....
    var
    log : TFileStream;
    file_name : String;
    ...
    ...
    if OpenDialog.Execute then log := TFileStream.Create(OpenDialog.FileName, fmOpenRead)
    else exit;
    ...
    ...
    При таком открытии файла OpenDialog.FileName игнорирует все пробелы в имени файла, которые находятся в начале, и соответственно при передаче его log происходит ошибка в открытии файла(так как без пробела файла на винте не существует).
    Пробовал file_name := Extract.FileName(OpenDialog.File Name);
    Все равно не видно пробела, но это и логично, т.к. я беру имя уже без пробела из OpenDialog.File Name. Помогите в решении этой проблемы...
  • Kolan © (26.04.08 23:33) [1]
    > Помогите в решении этой проблемы…

    Там наверно Trim В диалоге…
    Ну, может, проверяй FileExists и если нет, то пытайся найти
    ' '+FileName

  • dimak (26.04.08 23:35) [2]

    > Имя файла имеет пробел в начале

    Или несколько пробелов...
  • dimak (26.04.08 23:39) [3]

    > Ну, может, проверяй FileExists и если нет, то пытайся найти
    > ' '+FileName

    Если он отсутствует, то что мне надо делать, прибавить пробел или наоборот убавить...?
  • Loginov Dmitry © (26.04.08 23:51) [4]
    > При таком открытии файла OpenDialog.FileName игнорирует
    > все пробелы в имени файла, которые находятся в начале


    Ничего он не игнорирует. Возвращает все честно, как и положено!
  • dimak (27.04.08 08:54) [5]

    > Ничего он не игнорирует

    Может и не игнорирует, но я их(пробелы) не вижу при пошаговой компиляции... Т.е. если у меня путь к файлу:
    D:\Programs\ file.txt, то при компиляции OpenDialog.FileName возвращает D:\Programs\file.txt
    Файл не найден...
  • ZENsan © (27.04.08 09:37) [6]
    Я вообще не понял как ты такой файл создал. Я даже такой создать не могу...Может там какой другой символ пробельный из уникода?
  • dimak (27.04.08 09:56) [7]

    > Я вообще не понял как ты такой файл создал

    Лично я не создавал... Просто у меня программа проверяет содержание определенных файлов и нарвался на файл у которого пробел в начале имени. Программа у меня не создает файлы... А в TotalCommandere файл с таким именем создать можно. И чтобы мне в ручную не править имена, есть ли решение этой задачи?
  • {RASkov} © (27.04.08 10:23) [8]
    > [7] dimak   (27.04.08 09:56)
    > И чтобы мне в ручную не править имена, есть ли решение этой
    > задачи?

    Да ты выдумываешь что-то..... все нормально даже вообще без имени.... пробелы и расширение

    procedure TForm1.Button2Click(Sender: TObject);
    var F: TextFile;
    begin
     AssignFile(F, ExtractFilePath(ParamStr(0))+'      .txt');
     ReWrite(F);
     CloseFile(F);
     AssignFile(F, ExtractFilePath(ParamStr(0))+'       test.txt');
     ReWrite(F);
     CloseFile(F);
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
     if OpenDialog1.Execute then Memo1.Lines.Add(OpenDialog1.FileName);
    end;

  • dimak (27.04.08 12:32) [9]
    Заметил вот что... эта проблема в 98 винде происходит, пробовал в Висте такого нет... Может там проводник глючный???
  • {RASkov} © (27.04.08 12:35) [10]
    > [9] dimak   (27.04.08 12:32)
    > Заметил вот что... эта проблема в 98 винде происходит, пробовал
    > в Висте такого нет... Может там проводник глючный???

    Может ФАТ тому вина? Причем здесь проводник?
  • ZENsan © (27.04.08 13:43) [11]
    Да я тоже подумал, может это просто баг в ФАТ32? CheckDsk делал? Я просто не помню чтоб легально вообще когда-то было бы создать файл с пробелом в начале или конце..
  • Тыщ (27.04.08 14:13) [12]
    FAT32. Отлично создается файл " spaced . txt".
    Но я бы советовал придерживаться порядка, и не создавать таких файлов.
    А тех, кто создает - бить.
  • {RASkov} © (27.04.08 15:20) [13]
    > может это просто баг в ФАТ32?

    Почему баг? Не баг. Расширение - это только образное понятие, а посему оно такое же имя как собсно и само имя(О, как)....
    Вот если файл в файловой системе можно будет создать вообще с пустым именем, то вот - Баг.
    Впрочем согласен... давать файлам имена из пробелов не есть гуд.
  • {RASkov} © (27.04.08 15:21) [14]
    > давать файлам имена из пробелов не есть гуд.

    И мне кажеться вот это одна из причин почему виндовый проводник убирает пробелы :)
  • dimak (27.04.08 16:03) [15]
    Ну если уж есть пробел в начале, то как его убрать при открытии его с помощью OpenDialog1.Execute?
  • {RASkov} © (27.04.08 16:31) [16]
    > [15] dimak   (27.04.08 16:03)

    Переименовать файл?
    Trim(OpemDialog.FileName)?
  • {RASkov} © (27.04.08 16:33) [17]
    > Переименовать файл?

    Вообще-то ужасно как-то.... требовалось всего-то открыть файл.... и для этого его переименовываем :)
    Что-то наверное мне не ясен вопрос автора стал.... Сорри...
  • dimak (27.04.08 18:53) [18]
    Переименовать файл чтобы суть содержания файла потерять это одно дело, чем я и не занимаюсь, а убрать, как говорят выше "баг", я думаю нелишне... Спасибо за внимание!!!
  • Anatoly Podgoretsky © (27.04.08 19:14) [19]
    > dimak  (27.04.2008 18:53:18)  [18]

    Баг у тебя в голове.
  • dimak (27.04.08 21:29) [20]
    Удалено модератором
 
Конференция "Основная" » Пробел в начале имени файла... [D7, Win95/98, WinXP]
Есть новые Нет новых   [134487   +1][b:0][p:0.001]