Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.11;
Скачать: CL | DM;

Вниз

Сохранение в файл   Найти похожие ветки 

 
Igit   (2003-01-03 23:26) [0]

Здраствуйте уважаемые мастера... Вот у меня прблема, и я уверен что такая проблема возникала не только у меня... Вот пример:
1) Создаем KOL проеккт, кидаем на него TKOLOpenSaveDialog (name=OpenSaveDialog1), кидаем 2 кнопки (Button1 и Button2) и список (listbox1). Теперь поясню, Button1 будет добавлять выбранный в OpenSaveDialog1 файл в listbox1, а Button2 будет сохранять содержимое listbox1 в файл paths.txt
2)
Отредактируйте реакцию listbox1 на событие OnDropFiles так:
procedure TForm1.ListBox1DropFiles(Sender: PControl; const FileList: String; const Pt: TPoint);
var tmp:String;
p:Integer;
begin
tmp:=FileList;
while True do
begin
p:=pos(#13,tmp);
if p<>0 then
begin
ListBox1.Add(Copy(tmp,1,p-1));
delete(tmp,1,p);
end
else
begin
ListBox1.Add(tmp);
Break;
end;
end;
end;

нажатие на Button1:
if OpenSaveDialog1.Execute then
ListBox1.Add(OpenSaveDialog1.Filename);

нажатие на Button2:
var i:Integer;
paths_txt:TextFile;
begin
AssignFile(paths_txt, "paths.txt");
ReWrite(paths_txt); // точка прерывания
for i:=0 to (ListBox1.Count-1) do
WriteLn(paths_txt, ListBox1.Items[i]);
CloseFile(paths_txt);
end;

3) Все. Прграмма готова. Запустите её. Попробуй перетащи несколько файлов на ListBox1 потом нажми на Button2. В папке с программой появился файл paths.txt в котором содержание ListBox1. Теперь нажми на Button1 и добавь файл от туда. Попробуй сохранить, изменения не сохранились, файл остался с предыдущим содержанием. Если закрыть прогу и запустить её снова, потом сразу добавить файл[ы] через Button1, то опять ничего не сохранится, мало того, файл не изменится. Я попробовал поставить точку прерывания, запустил снова прогу, добавил файлы как в прошлый раз, нажал сохранить, и я в делфи, но как? команда ReWrite выполняется, а файл даже не очищается. Также пробовал кинуть на форму EditBox и его содержимое сохранять в другой файл, но оно сохранялось только в том случае если я ничего не выбирал в OpenSaveDialog"e. Такое ощущение что после выбора файлов в OpenSaveDialog"e вообще нельзя писать в файлы
Сразу извиняюсь за длинный вопрос и за то что не поискал ответа (инет почти кончилс:(((


 
Gandalf   (2003-01-04 12:35) [1]

Помоему ошибка в твоей невнимательности.
Во всяком случаи код у меня работает. Только у тебя файлы сохраняются в активной директории (т.е. той откуда ты SaveOpenDialog - файл выбрайл), а не там где находится твой ехе, ты это заметил?
Надо сделать где-то так:

AssignFile(paths_txt, ExtractFilePath(ParamStr(0))+"paths.txt");


 
Igit   (2003-01-04 12:41) [2]

Н... да... щас попробую... Спасибо большое...



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

Текущий архив: 2003.09.11;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.009 c
14-33752
Skier
2003-08-22 14:53
2003.09.11
Опять по


1-33626
Eagle Owl
2003-08-31 21:06
2003.09.11
GIF


1-33676
tvic
2003-08-29 15:44
2003.09.11
Произвольная кнопка


3-33446
stud
2003-08-21 13:24
2003.09.11
select на дерево


7-33835
Antonyan
2003-06-26 11:23
2003.09.11
Запись в EXE





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский