Что нового

[Окна, Диалоги] Сохранение путя к папке с помощью ini файла

COKOL

Новичок
Сообщения
8
Репутация
0
Люди помогите пожалуйста я делаю программу которая бы заменяла озвучку в кс. В чём проблема в кс часто озвучка слетает при обновление иле когда заходишь на новый сервер.
В справке я прочитал что можно записать значение в стандартный .ini файл.
Так вот что мне нужно вот мой скрипт
Код:
$var = FileSelectFolder("Выберете путь к папке с игрой", "")

FileDelete($var& "sticktog.wav")
FileDelete($var& "roger.wav")
FileDelete($var& "negative.wav")
FileDelete($var& "followme.wav")
FileDelete($var& "fireassis.wav")
FileDelete($var& "enemydown.wav")
FileDelete($var& "ct_inpos.wav")
FileDelete($var& "ct_enemys.wav")
FileDelete($var& "ct_backup.wav")
FileDelete($var& "ct_affirm.wav")
FileDelete($var& "com_reportin.wav")
FileDelete($var& "com_go.wav")
FileDelete($var& "com_getinpos.wav")
FileDelete($var& "clear.wav")
FileDelete($var& "blow.wav")

FileCopy("sticktog.wav",$var)
FileCopy("roger.wav",$var)
FileCopy("negative.wav",$var)
FileCopy("followme.wav",$var)
FileCopy("fireassis.wav",$var)
FileCopy("enemydown.wav",$var)
FileCopy("ct_inpos.wav",$var)
FileCopy("ct_enemys.wav",$var)
FileCopy("ct_backup.wav",$var)
FileCopy("ct_affirm.wav",$var)
FileCopy("com_reportin.wav",$var)
FileCopy("com_go.wav",$var)
FileCopy("com_getinpos.wav",$var)
FileCopy("clear.wav",$var)
FileCopy("blow.wav",$var)

Мне нужно что бы после того как 1 рас настроишь путь к папке с игрой путь сохранялся в .ini файл и при следующем запуске программы оно не спрашивало путь а просто копировало его в указанною ранние папку записанною в .ini файл.
 

beve

Осваивающий
Сообщения
104
Репутация
31
Re: [Окна, Диалоги] Установочник

Код:
$IniFile=@ScriptDir & "\settings.ini"
$Path = IniRead($IniFile, "Main", "Path", "NotFound")
if $Path=="NotFound" Or FileExists ($Path)==0 then
    $Path = FileSelectFolder("Выберете путь к папке с игрой", "")
    if not @error then
        IniWrite($IniFile, "Main", "Path", $Path)
    Else
        MsgBox(48, "Warning", "Не выбран правильный путь.")
        Exit
    EndIf
endif
;дальше твой код, путь будет в переменной $Path
MsgBox(64,"Message", $Path)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [Окна, Диалоги] Установочник

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Как правильно называть темы

"[Окна, Диалоги] Установочник " - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, Администратор форума.
 
Автор
C

COKOL

Новичок
Сообщения
8
Репутация
0
Вы не могли бы скинуть мне всё это вместе с моим скриптом? взарание спасибо!
 

VladUs

Скриптер
Сообщения
621
Репутация
181
beve
Сдается мне что вместо
Код:
if $Path=="NotFound" Or FileExists ($Path)==0

необходимо
Код:
if $Path=="NotFound" Or FileExists ($IniFile)==0
 

beve

Осваивающий
Сообщения
104
Репутация
31
VladUs сказал(а):
Сдается мне что
Если нету ini файла или нужного ключа в этом файле, то возвращаемое значение будет - "NotFound". А FileExists ($Path)==0, проверяет правильность пути (ведь даже если в ini прописан путь, то он может быть не действительный. Можно его создать далее с помощью Dircreate(), но лучше так как задумано автором темы, через окно выбора пути...)
Вы не могли бы скинуть мне всё это вместе с моим скриптом?
Код:
Global $IniFile=@ScriptDir & "\settings.ini"
Global $Path = IniRead($IniFile, "Main", "Path", "NotFound")
if $Path=="NotFound" Or FileExists ($Path)==0 then
    $Path = FileSelectFolder("Выберете путь к папке с игрой", "")
    if not @error then
        IniWrite($IniFile, "Main", "Path", $Path)
    Else
        MsgBox(48, "Warning", "Не выбран правильный путь.")
        Exit
    EndIf
endif
$Path=$Path&"\"

FileDelete($Path& "sticktog.wav")
FileDelete($Path& "roger.wav")
FileDelete($Path& "negative.wav")
FileDelete($Path& "followme.wav")
FileDelete($Path& "fireassis.wav")
FileDelete($Path& "enemydown.wav")
FileDelete($Path& "ct_inpos.wav")
FileDelete($Path& "ct_enemys.wav")
FileDelete($Path& "ct_backup.wav")
FileDelete($Path& "ct_affirm.wav")
FileDelete($Path& "com_reportin.wav")
FileDelete($Path& "com_go.wav")
FileDelete($Path& "com_getinpos.wav")
FileDelete($Path& "clear.wav")
FileDelete($Path& "blow.wav")

FileCopy(@ScriptDir &"\sticktog.wav",$Path)
FileCopy(@ScriptDir &"\roger.wav",$Path)
FileCopy(@ScriptDir &"\negative.wav",$Path)
FileCopy(@ScriptDir &"\followme.wav",$Path)
FileCopy(@ScriptDir &"\fireassis.wav",$Path)
FileCopy(@ScriptDir &"\enemydown.wav",$Path)
FileCopy(@ScriptDir &"\ct_inpos.wav",$Path)
FileCopy(@ScriptDir &"\ct_enemys.wav",$Path)
FileCopy(@ScriptDir &"\ct_backup.wav",$Path)
FileCopy(@ScriptDir &"\ct_affirm.wav",$Path)
FileCopy(@ScriptDir &"\com_reportin.wav",$Path)
FileCopy(@ScriptDir &"\com_go.wav",$Path)
FileCopy(@ScriptDir &"\com_getinpos.wav",$Path)
FileCopy(@ScriptDir &"\clear.wav",$Path)
FileCopy(@ScriptDir &"\blow.wav",$Path)
Вот так будет с твоим скриптом. Но можно упростить, не удяляя файлы предварительно с помощью функции FileDelete(), а использовать функцию FileCopy ( "source", "dest" [, flag] ) с флагом 1, который отвечае за перезапись существующего файла с именем аналогичному копироемому файлу.
 
Верх