Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Paramstr(0) 
:(
    Опции темы
Victor
Дата 15.2.2004, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 225
Регистрация: 29.10.2003

Репутация: нет
Всего: нет



Вот :
Код
 
procedure test;
var
 s:string;
begin
 SetLength(s, 255);
 GetWindowsDirectory(PChar(s), 255);
 SetLength(s, StrLen(PChar(s)));
if paramstr(0) <> s + '\MyName.exe' then  showmessage(paramstr(0));
end;

Но даже если прога в папке WINDOWS, то он выводит paramstr(0) т.е условие if..<> не работает =(
Делал так же через Application.exename тоже самое.

PM MAIL   Вверх
dm9
Дата 15.2.2004, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: 6
Всего: 137



У меня код работает. Проверь регистр букв.
PM MAIL ICQ   Вверх
Cheba
Дата 16.2.2004, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

Репутация: 1
Всего: 62



Попробуй s + '\MyName.exe' взять в скобки (s + '\MyName.exe'). Вообще-то не обязательно, но кто знает?
PM MAIL ICQ   Вверх
<Spawn>
Дата 16.2.2004, 05:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



юзай AnsiCompareText


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Fedor
Дата 16.2.2004, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



Присвой какой-нить переменной значение парамстр(0) и посмотри, чему оно равно протым вотчем.
Скорее всего, dm9 прав: измени регистр. Лучше поставь функцию uppercase.


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
Victor
Дата 16.2.2004, 07:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 225
Регистрация: 29.10.2003

Репутация: нет
Всего: нет



блин нехочет работать, и в скобки брал, и uppercase(s); cтавил, и проверял сто раз значение парамстр, у меня оно ввводиться. Получаеться так
Если путь нераравен C:\WINDOWS\MYNAME.EXE то показать ПУТЬ
ПУТЬ выводит: C:\WINDOWS\MYNAME.EXE
=(
PM MAIL   Вверх
Fedor
Дата 16.2.2004, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



Тогда скорее всего в конце одной из строк стоит какой-нить невидимый символ... Посмотри длину обоих строк...


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
Victor
Дата 16.2.2004, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 225
Регистрация: 29.10.2003

Репутация: нет
Всего: нет



мож просто я туплю где то. Я пишу не в юните а в самом source;)
Код

 SetLength(s, 255);
 GetWindowsDirectory(PChar(s), 255);
 SetLength(s, StrLen(PChar(s)));
 uppercase(s);
 if paramstr(0) <> s + '\MYNAME.exe' then  showmessage(paramstr(0));
 showmessage(inttostr(length(s + '\MYNAME.exe')));
 showmessage(inttostr(length(paramstr(0))));

Длина одинакова , компилю, ложу в C:\WINDOWS\, поидее
s+'\MYNAME.exe' дает C:\WINDOWS\MYNAME.exe
и в чем тут ошибка
PM MAIL   Вверх
Cashey
Дата 16.2.2004, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: 2
Всего: 60



Код
Label1.Caption:=(Application.ExeName);

и ты получишь полный путь к exe-файлу, те то же самое что и paramstr(0)


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
SmaLL
Дата 16.2.2004, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 557
Регистрация: 17.12.2002
Где: Voronezh

Репутация: 1
Всего: 2



Цитата
юзай AnsiCompareText

Точна


--------------------
Что ни делается - всЁ к лучшему! SmallWeb
Мой адрес не дом и не улица, мой адрес родной пивзавод!
PM MAIL WWW ICQ   Вверх
Cashey
Дата 16.2.2004, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: 2
Всего: 60



Делай так:
Код
if paramstr(0) <> s + '\MYNAME.EXE' then  showmessage(paramstr(0));

Вот так будет работать точно.
Обрати внимание ВСЕ БОЛЬШИМИ БУКВАМИ


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Victor
Дата 16.2.2004, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 225
Регистрация: 29.10.2003

Репутация: нет
Всего: нет



Cashey Непойму почему но заработало. КАКАЯ РАЗНИЦА КАКИМИ БУКВАМИ РАСШИРЕНИЕ! =) не MYNAME.exe, а MYNAME.EXE smile.gif
Ураааааа
Цитата
AnsiCompareText
это что? =)
PM MAIL   Вверх
Vit
Дата 16.2.2004, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата
КАКАЯ РАЗНИЦА КАКИМИ БУКВАМИ РАСШИРЕНИЕ


Просто строка 'exe' не равна строке 'EXE' - ведь используются совсем другие HEX символы.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 16.2.2004, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Цитата(Victor @ 16.2.2004, 08:14)
Цитата
AnsiCompareText
это что? =)

Это функция(жми F1) - проверяет совпадение строк без учета регистра, с учетом регистра - AnsiCompateStr.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1627 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.