Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2011, 17:24   #1
delfin07
Форумчанин
 
Регистрация: 14.05.2011
Сообщений: 108
Печаль Delphi. Проверить, если файл с таким именем существует то задать новое случайное имя

чето метка не пашет
Код:
procedure TForm4.Image1Click(Sender: TObject);
label l;
begin


if OpenPictureDialog1.Execute then
image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
l:a:=random(1000000)+1;
 dbedit1.Text:='foto\'+inttostr(a)+'.jpg';
Может тут условие я не правильно задал/////// if fileexists('foto\'+inttostr(a)+'.jp g') then goto l;

end;

Последний раз редактировалось Stilet; 04.06.2011 в 13:55.
delfin07 вне форума Ответить с цитированием
Старый 04.06.2011, 00:14   #2
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

а собственно как вы хотите?
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 04.06.2011, 00:38   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Может тут условие я не правильно задал/////// if fileexists('foto\'+inttostr(a)+'.jp g') then goto l;
Внимательно посмотрите сюда. Почему у вас расширение через пробел написано?
Вадим Мошев вне форума Ответить с цитированием
Старый 04.06.2011, 00:52   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

И не только расширение.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.06.2011, 12:27   #5
delfin07
Форумчанин
 
Регистрация: 14.05.2011
Сообщений: 108
По умолчанию

К пробелам не придирайтесь тут все норм просто может када кидал сюда код сам не увидел пробелы или даже сам нажал пробел .А теперь о программе что я хочу
1.если файл с таким именем существует то пометке оно рандамом задает новое имя
но оно не задает новое имя я не знаю даже что исправить
if fileexists('foto\'+inttostr(a)+'.jp g') then goto l
delfin07 вне форума Ответить с цитированием
Старый 04.06.2011, 12:34   #6
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Зачем метки?

Код:
While FileExists(Name) Do Name := ....;
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 04.06.2011, 12:47   #7
delfin07
Форумчанин
 
Регистрация: 14.05.2011
Сообщений: 108
По умолчанию

как применить Этот цик к моей программе

Код:
procedure TForm4.Image1Click(Sender: TObject);
label l;
begin

if OpenPictureDialog1.Execute then
image1.Picture.LoadFromFile(OpenPic tureDialog1.FileName);
l:a:=random(1000000)+1;
dbedit1.Text:='foto\'+inttostr(a)+' .jpg';
if fileexists('foto\'+inttostr(a)+'.jp g') then goto l;

Последний раз редактировалось Stilet; 04.06.2011 в 13:55.
delfin07 вне форума Ответить с цитированием
Старый 04.06.2011, 13:35   #8
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Цитата:
как применить Этот цик к моей программе
Ты разобрался что делает этот цикл?
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 04.06.2011, 15:15   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
но оно не задает новое имя я не знаю даже что исправить
Давайте попробуем разобраться.
Вы через OpenDialog1 получаете имя файла.
Дальше грузите указанный файл в Image1

а вот дальше - НЕПОНЯТНО, что Вы хотите получить?!
Изменить имя существующего файла на диске? Переименовать? Скопировать?
Цитата:
Код:
l:a:=random(1000000)+1;
dbedit1.Text:='foto\'+inttostr(a)+' .jpg';
if fileexists('foto\'+inttostr(a)+'.jpg') then goto l;
тут Вы получаете какое-то случайное имя вида
foto\Число.jpg
с вероятностью 99.99% такого файла у Вас в папке нет, поэтому GOTO не отрабатывает.
И что дальше?!!!

(я уже не говорю, о том, что Вам правильно говорят, что GOTO - может быть заменён на цикл с условием!)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.06.2011, 23:21   #10
delfin07
Форумчанин
 
Регистрация: 14.05.2011
Сообщений: 108
По умолчанию

Я сам понял в чем моя ошибка , я проверил работает ли fileexists
вот так как ты показал она не пашет <<fileexists('foto\'+inttostr(a)+'. jpg')>>
она тупо не находит Этого файла, а вот рабочий код
fileexists((ExtractFilePath(Applica tion.ExeName)+'foto\'+inttostr(a)+' .jpg'))
и по метке все нормально задает новые имена рандомом
delfin07 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Firebird - fdb файл увеличивается при записи полей, но если базу очищаешь, размер остается таким же RuVarez БД в Delphi 1 23.09.2010 18:09
Изменить выделенный текст таким образом, чтобы новое выделение, содержало те же символы, но расположенные develish151 Microsoft Office Word 2 22.04.2010 18:18
Ввести имя файла с клавиатуры,открыть если существует,перименовать и переместить его mulatoschka1990 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 23.10.2009 16:18
Проверить существует ли путь и создать если его нет hoba PHP 6 29.08.2008 14:40
Как узнать, существует ли в базе таблица с указанным именем? Seqular БД в Delphi 1 01.03.2007 10:19