I am trying to read line by line the content of a text file;
I am looking for something, for a specific line.
I need to modify that line;
I need to save, the new content in another file, and then delete the original file and rename the new file with the original file name;
function NextButtonClick(CurPageID: Integer): Boolean;
var
ExecInfo: TShellExecuteInfo;
ExecInfoBrowser: TShellExecuteInfo;
textFileFrom, textFileTo : text;
line: string;
begin
Result := True;
if CurPageID = wpFinished then
begin
ExecInfo.cbSize := SizeOf(ExecInfo);
ExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
ExecInfo.Wnd := 0;
ExecInfo.lpFile := ExpandConstant('{app}') + '\{#Exewampmanager}';
ExecInfo.nShow := SW_HIDE;
if ShellExecuteEx(ExecInfo) then
begin
if WaitForSingleObject(ExecInfo.hProcess, 5000) = WAIT_TIMEOUT then
begin
Assign(textFileFrom,'wampmanager.conf');
Reset(textFileFrom);
Assign(textFileto,'wampmanager2.conf');
Rewrite(textFileTo);
repeat
readln(textFileFrom,line);
writeln(textFileto,line);
until eof(textFileFrom);
Close(textFileFrom);
Close(textFileTo);
ExecInfoBrowser.cbSize := SizeOf(ExecInfo);
ExecInfoBrowser.fMask := SEE_MASK_NOCLOSEPROCESS;
ExecInfoBrowser.Wnd := 0;
ExecInfoBrowser.lpFile := 'http://localhost/cow';
ExecInfoBrowser.nShow := SW_HIDE;
ShellExecuteEx(ExecInfoBrowser);
end;
end;
end;
end;
in the file i need to nodify this line: installDir = "c:/wamp"
because the new installation might not be in the same location
this is the conf file:
[main]
language = english
status = "offline"
wampserverVersion = 2.2
wampserverLastKnown = 2.2
installDir = "c:/wamp"
navigator = "C:\Windows\explorer.exe"
defaultLanguage = english
[php]
phpVersion = "5.4.3"
phpLastKnown = 5.4.3
phpIniDir = .
phpConfFile = php.ini
phpExeDir = .
[phpCli]
phpCliVersion = 5.4.3
phpExeFile = php.exe
phpCliFile = php-win.exe
[apache]
apacheVersion = "2.2.22"
apacheLastKnown = 2.2.22
apacheExeDir = bin
apacheConfDir = conf
apacheExeFile = httpd.exe
apacheConfFile = httpd.conf
apacheServiceInstallParams = -n wampapache -k install
apacheServiceRemoveParams = -n wampapache -k uninstall
[mysql]
mysqlVersion = "5.5.24"
mysqlLastKnown = 5.5.24
mysqlConfDir = .
mysqlConfFile = my.ini
mysqlExeDir = bin
mysqlExeFile = mysqld.exe
mysqlServiceInstallParams = --install-manual wampmysqld
mysqlServiceRemoveParams = --remove wampmysqld
[apps]
phpmyadminVersion = 3.5.1
sqlbuddyVersion = 1.3.3
webgrindVersion = 1.0
If that config file is in an INI file format, what seems to be, you can either use the [INI]
section to modify a single value e.g. this way (note, that you must double double quotes to compile the script and have the value enclosed in double quotes). Of course the values I've showed here you can replace with constants as usually:
[INI]
Filename: "{app}\wampmanager.conf"; Section: "main"; Key: "installDir"; String: """{app}"""
Or you can complicate things a bit by using code from the [Code]
section:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
[Code]
function ChangeInstallDir(const FileName, InstallDir: string): Boolean;
begin
Result := SetIniString('main', 'installDir', '"' + InstallDir + '"', FileName);
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
if not ChangeInstallDir(ExpandConstant('{app}\wampmanager.conf'),
ExpandConstant('{app}')) then
MsgBox('Saving to config file failed!', mbError, MB_OK);
end;
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments