Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Вниз

Средствами Паскаль определить существует ли фаил.   Найти похожие ветки 

 
WebSQLNeeder ©   (2005-11-05 15:59) [0]

Простите за такой глупый вопрос, но вот никак не вспомню как определить существует ли фаил, который я пытаюсь загрузить в мемо.

Что странно даже такой код не работает :(

 DateTimeToString(st, "d", Now()); // в st заносится сегодняшнее число
 fname:="C:/data/Adv/"+st+".txt"; // имя файла в формате число.txt
 try
   Form2.Memo2.Lines.LoadFromFile(fname); // Пытаемся загрузить
 except
   showmessage("No file today, file name = "+fname); // Обрабатываем ошибку.
 end;

Что интересно так это то, что фаил fname с таким именем у меня вот перед глазами лежит ... Так в чем же дело тогда ??


 
@BraIN ©   (2005-11-05 16:30) [1]

if FileExists("имя файла") then ...


 
WebSQLNeeder ©   (2005-11-05 16:37) [2]

Странно, но ошибка не исчезает. не могу понять, в чем дело ?? Привожу полностью процедуру, которая при старте формы загружает в мемо фаил, который имеет название сегодняшний_день.txt

procedure TForm1.FormCreate(Sender: TObject);
var fname,st:string;
begin
DateTimeToString(st, "d", Now()); // в st заносится сегодняшнее число
fname:="C:/data/Adv/"+st+".txt"; // имя файла в формате число.txt
if FileExists(fname) then
begin
 try
   Form2.Memo2.Lines.LoadFromFile(fname);
 except
   Showmessage("Ошибка загрузки файла");
 end;
end
else Showmessage("Фаил не существует");
end;


 
WebSQLNeeder ©   (2005-11-05 16:40) [3]

Хммм, странные вещи !!! Если заменить Form2.Memo2.Lines.LoadFromFile(fname); на любое Мемо, НО на главной форме, например Memo1.Lines.LoadFromFile(fname); То все загружается ...

Что за глюк ???


 
WebSQLNeeder ©   (2005-11-05 16:44) [4]

Та же ерунда происходит если обьявить переменную str:TStrings; и потом попробовать str.Create;str.LoadFromFile(fname);

Выдается ошибка времени выполнения ...

Что это такое, почему нельзя загрузить в стринглист из файла?


 
@BraIN ©   (2005-11-05 16:47) [5]


> Хммм, странные вещи !!! Если заменить Form2.Memo2.Lines.
> LoadFromFile(fname); на любое Мемо, НО на главной форме,
>  например Memo1.Lines.LoadFromFile(fname); То все загружается
> ...


А ты уверен, что Form2 у тебя автоматически создается? Посмотри в опциях проекта..


> Та же ерунда происходит если обьявить переменную str:TStrings;
>  и потом попробовать str.Create;str.LoadFromFile(fname);
>


Что за синтаксис такой...str.create;?

var
 St: TStrings;
begin
 St := TStringList.Create;
 St.LoadFromFile(...);
 ...


 
sniknik ©   (2005-11-05 16:49) [6]

главная форма создается первой.

в событии создания
procedure TForm1.FormCreate(Sender: TObject);
второй формы еще нет, поменяй событие на onShow к примеру, там уже все создастся.
либо загружай свой файл в событии создания второй формы. насколько вижу никаких причин делать это именно в первой нет.


 
Virgo_Style ©   (2005-11-05 16:53) [7]

А что нам скажет

...
except
 on E:Exception do Showmessage(E.Message);
end;

?


 
Zeqfreed ©   (2005-11-05 16:53) [8]

WebSQLNeeder ©   (05.11.05 16:40) [3]
Видимо на момент выполнения кода, Form2 ещё не создана, что, в общем-то, вероятнее всего.

WebSQLNeeder ©   (05.11.05 16:44) [4]
TStrings - абстрактный класс, его экземпляр нельзя создать, создать можно экземпляр TStringList и присвоить его переменной типа TStrings.


 
WebSQLNeeder ©   (2005-11-05 18:35) [9]

Уже все решилось, но спасибо и за ваши варианты.

В онКриейт действительно вторая форма еще не проинициализирована, я сделал то же самое (загрузка в Мемо второй формы из файла) по нажатию кнопки "Загрузить параметры". Тогда все работает.

С TStrings - это да, я действительно поспешил с str.create; - просто искал быстрые пути подмены строк мемо и запутался в вызове обьекта строк.


 
аматор ©   (2005-11-05 20:59) [10]

Привет.
А ещё краше - запихни код в момент активации формы, тогда мемо точно создана будет...



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.042 c
4-1127129624
jeka_t
2005-09-19 15:33
2005.11.20
Как можно распечатать файл LPT?


14-1130261828
Джо
2005-10-25 21:37
2005.11.20
Perl-функция pack


2-1130604470
Win_sido
2005-10-29 20:47
2005.11.20
Delfi 7


14-1130668994
Nic
2005-10-30 13:43
2005.11.20
У кого кокой опыт в области Shareware?


2-1131025415
Eksell
2005-11-03 16:43
2005.11.20
Kak podshitati v faile kolichestvo naprimer simvolov #





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский