代码如下:
但程序退出后进程中仍有EXCEL的进程。
if not VarIsEmpty(ExcelApp) then begin //释放对象
ExcelApp.WorkBooks.Close;
//ExcelApp.Disconnect;
ExcelApp.displayAlerts:=false;
ExcelApp.ScreenUpdating:=true;
ExcelApp.Quit;
ExcelApp := Unassigned;
end;
怎样创建INI里面的SESSION
我想新建一个SESSION,怎么实现?
但程序退出后进程中仍有EXCEL的进程。
if not VarIsEmpty(ExcelApp) then begin //释放对象
ExcelApp.WorkBooks.Close;
//ExcelApp.Disconnect;
ExcelApp.displayAlerts:=false;
ExcelApp.ScreenUpdating:=true;
ExcelApp.Quit;
ExcelApp := Unassigned;
end;
怎样创建INI里面的SESSION
我想新建一个SESSION,怎么实现?
excel.exe我都是用段代码直接结束'excel.exe'进程
怎么结束啊?杀进程?TIniFile有ReadString,同样也有writestring啊我知道有writestring,writestring是写对应session的属性的值吧?
比如ini文件如下:[student]
name=张韶涵
addreess=武汉
writestring是用来写name 和addreess 的值吧?inifile.writestring('student','name','张韶涵');我的问题是如何写创建[student]?
谢谢
const
PROCESS_TERMINATE = $0001;
var
continueloop: boolean;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
Result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); while Integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(
OpenProcess(PROCESS_TERMINATE,
BOOL(0),
FProcessEntry32.th32ProcessID),
0));
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
ini文件本质上也就是一个txt文档,你把它当成个txt来处理就是了.
大小写的问题? 不清楚了...我一直是这么干的
begin
inherited;
IniFile:=TIniFile.Create(ExtractFilePath(paramstr(0))+'FTP.ini');
try
with IniFile do
begin
EdtIP.Text:=ReadString('IP','IP','192.168.1.1');
EdtUser.Text:=ReadString('User','User','admin');
EdtPass.Text:=ReadString('Pass','Pass','admin');
end;
finally
IniFile.Free;
end;
sfilename:string;
iniFile: TextFile;
begin
sfilename := GetCurrPath + 'configini.INI';
assignfile(iniFile, sfilename);
Reset(iniFile);
writeln('1222');
CloseFile(iniFile);end;这样写为什么不行?
好像什么都没有写入。
assignfile(iniFile,sfilename);
rewrite(iniFile);
writeln(iniFile,'asdasd');
closefile(iniFile);
procedure TLoginFrm.WriteIni(iFile, iSection: String; Const iName, iValue: Array of String);
var f: TIniFile;
i: Integer;
begin
f := TIniFile.Create(iFile);
try
for i:=0 to Length(iName)-1 do
f.WriteString(iSection, iName[i], '"'+ iValue[i] + '"');
finally
f.Free;
end;
end;
sfilename := GetCurrPath + 'configini.INI';
assignfile(iniFile,sfilename);
rewrite(iniFile);
writeln(iniFile,'asdasd');
closefile(iniFile);我不想用rewrite(iniFile);
rewrite(iniFile); 会把整个文件覆盖重写,这是我不想要的,
我只想在最后面追加。
to PrettyMurphy:
你的代码只是给ini文件已有的SESSION赋值吧?并不是创建新的SESSIONS吧?谢谢你们的热情回复。
方法:
var
sFileName:string;
iniFiles: TIniFile;
Strings: TStrings;
begin
sFileName := sCurrentPath + '\inifiles\configinibak.ini';
iniFiles := TIniFile.Create(sFileName);
Strings := TStrings.Create;
iniFiles.ReadSectionValues(trim(Ed_BossServId_Add.text), Strings);
iniFiles.WriteString(trim(Ed_Add.text), 'icpcode', trim(Ed_Icp_add.text));
iniFiles.WriteString(trim(Ed_b_Add.text), 'icpservid', trim(Ed_Icp_Add.text));
iniFiles.Free; Strings.Destroy;
showmessage('修改成功');
end;
ReadString()TIniFile.Create
ReadString()