Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.07.2009, 11:52
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию Помогите с картинкой

Первый раз пишу на этом форуме
Собственно вопрос: мне нужно чтобы имя файла картинки полученной через OpenDialog и показанной на форме, было записано в файл, но при этом вылетает ошибка "File not found"
И еще можно ли как-нибудь отделитьтолько имя файла, то есть если полное имя файла: I:\Folder\file.bmp, то надо убрать I:\Folder\ и оставить только file.bmp?
Ответить с цитированием
  #2  
Старый 16.07.2009, 12:41
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

второе - ExtractFileName.
А насчёт первого - приведи строку, где вылетает ошибка, скажу, что не так.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #3  
Старый 16.07.2009, 12:42
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Как ты сохраняешь в файл? А для получения имени файла используй ExtractFileName ('Имя файла')
Ответить с цитированием
  #4  
Старый 16.07.2009, 12:54
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

Код:
procedure TForm2.Button4Click(Sender: TObject);// получения имени файла
var
i:integer;
begin
 OpenDialog1.Title:='Выбор картинки';
 if OpenDialog1.Execute then
 begin
 fName:=OpenDialog1.FileName;
 try
 Image1.Picture.LoadFromFile(fName);
 except
 ShowMessage('Нужно выбрать файл картинки! .bmp, .jpg  и т.д.');
 end;
 SpeedButton1.Enabled:=true;
  Image1.Visible:=true;
  ImageVis:=True;
  
 end;
procedure TForm2.Button2Click(Sender: TObject);// запись в файл 
begin
Append(TMP);// ранее созданный файл ( но при этом делфи его выделяет)
Writeln(TMP,N);
Writeln(TMP,LabeledEdit1.Text);
if ImageVis=true then
begin
Writeln(TMP,'1');
Writeln(TMP,fName);
end
else writeln(TMP,'0');
CloseFile(TMP);
N:=N+1;
Label2.Caption:=IntToStr(N);
Image1.Visible:=False;
end;
Admin: Читаем правила и не забываем про теги!

Последний раз редактировалось Admin, 16.07.2009 в 13:43.
Ответить с цитированием
  #5  
Старый 16.07.2009, 12:58
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

Цитата:
Сообщение от Drozh
Как ты сохраняешь в файл? А для получения имени файла используй ExtractFileName ('Имя файла')

Это не помогает, т.к. получается имя файла с указанием всего пути, а надо только имя и расширение
Ответить с цитированием
  #6  
Старый 16.07.2009, 14:46
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Цитата:
Сообщение от ChinYan
Это не помогает, т.к. получается имя файла с указанием всего пути, а надо только имя и расширение

Это - вряд ли.
Код:
//После этого :
MyFileName:=ExtractFileName ('C:\MyDir1\MyDir2\MiDir3\MyFile.txt');
//В переменной MyFileName должно быть значение=MyFile.txt


Цитата:
Сообщение от ChinYan
Append(TMP);// ранее созданный файл ( но при этом делфи его выделяет)

Файл-то может и создан ранее (в смысле - существует на диске).
Но на него в программе нужно получить ссылку (как минимум).
Т.е, может быть TMP - не корректная ссылка ?
Или же (может быть) файл иммет атрибут Hidden (System).
Тогда AssignFile может его не "увидеть" ...
Ответить с цитированием
  #7  
Старый 17.07.2009, 18:05
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

Цитата:
Сообщение от roamer
Это - вряд ли.
Код:
//После этого :
MyFileName:=ExtractFileName ('C:\MyDir1\MyDir2\MiDir3\MyFile.txt');
//В переменной MyFileName должно быть значение=MyFile.txt




Файл-то может и создан ранее (в смысле - существует на диске).
Но на него в программе нужно получить ссылку (как минимум).
Т.е, может быть TMP - не корректная ссылка ?
Или же (может быть) файл иммет атрибут Hidden (System).
Тогда AssignFile может его не "увидеть" ...

Так, с именем файла я разобрался...
Теперь к TMP этокорректная ссылка так как текстовые данные в этот файл записать удается но как только дело доходит до именя картинки ему что-то не нравится
Ответить с цитированием
  #8  
Старый 17.07.2009, 21:11
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Title:='Выбор картинки';
 if OpenDialog1.Execute then
    begin
     fName:=OpenDialog1.FileName;
      try
       Image1.Picture.LoadFromFile(fName);
        except
        showmessage('Выберите другую картинку!!!');
      end;
    button2.Visible:=true;
  end;
end;


procedure TForm1.Button2Click(Sender: TObject);     
var
path:string;
f:textfile;
begin
path:= ExtractFilePath(Application.EXEName)+ '1.txt';
AssignFile(f, path);
Append(f);
WriteLn(f, ExtractFileName(FName));
CloseFile(f);
button2.Visible:=false;
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:24.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter