num:=listbox.Count;
for index:=0 to num-1 do
begin
Query.Close;
Query.Open;
Query.First;
Query.Locate('PgName',listbox.Items.Strings[index],[loPartialKey]);
sourceDir:=edit18.Text+listbox.Items.Strings[index];
armDir:=edit19.Text+Copy(FormatDateTime('yyyymmddhhmmss',Now),1,14)+'\'+listbox.Items.Strings[index];
filename:=armDir+'.ini' ;
xmlfiletemp[index]:=Tinifile.Create(filename);
xmlfile:= xmlfiletemp[index];
xmlfile.WriteString(listbox.Items.Strings[index],'PgID',query.fieldbyname('PgID').AsVariant);
xmlfile.WriteString(listbox.Items.Strings[index],'PgName',query.fieldbyname('PgName').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgSize',query.fieldbyname('PgSize').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgTitle',query.fieldbyname('PgTitle').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgTimecodeIn',query.fieldbyname('PgTimecodeIn').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgDuration',query.fieldbyname('PgDuration').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgBarcode',query.fieldbyname('PgBarcode').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgServerIP',query.fieldbyname('PgServerIP').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgStation',query.fieldbyname('PgStation').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgType',query.fieldbyname('PgType').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgType_AD',query.fieldbyname('PgType_AD').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgProfile',query.fieldbyname('PgProfile').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgBitRate',query.fieldbyname('PgBitRate').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgLifeEnd',query.fieldbyname('PgLifeEnd').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PGOther',query.fieldbyname('PGOther').AsString);
xmlfile.Free;
ImportExportFrm.MyCopyFile(sourceDir+'.M2v',armDir+'.M2v');
ImportExportFrm.MyCopyFile(sourceDir+'.wav',armDir+'.wav');
ImportExportFrm.MyCopyFile(sourceDir+'.inx',armDir+'.inx');
end;在循环中,如果运行完第一遍后,运行第二遍时出错,说什么不能写到相应的INI文件中,请各位帮我找找错在什么地方,谢谢!
for index:=0 to num-1 do
begin
Query.Close;
Query.Open;
Query.First;
Query.Locate('PgName',listbox.Items.Strings[index],[loPartialKey]);
sourceDir:=edit18.Text+listbox.Items.Strings[index];
armDir:=edit19.Text+Copy(FormatDateTime('yyyymmddhhmmss',Now),1,14)+'\'+listbox.Items.Strings[index];
filename:=armDir+'.ini' ;
xmlfiletemp[index]:=Tinifile.Create(filename);
xmlfile:= xmlfiletemp[index];
xmlfile.WriteString(listbox.Items.Strings[index],'PgID',query.fieldbyname('PgID').AsVariant);
xmlfile.WriteString(listbox.Items.Strings[index],'PgName',query.fieldbyname('PgName').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgSize',query.fieldbyname('PgSize').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgTitle',query.fieldbyname('PgTitle').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgTimecodeIn',query.fieldbyname('PgTimecodeIn').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgDuration',query.fieldbyname('PgDuration').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgBarcode',query.fieldbyname('PgBarcode').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgServerIP',query.fieldbyname('PgServerIP').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgStation',query.fieldbyname('PgStation').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgType',query.fieldbyname('PgType').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgType_AD',query.fieldbyname('PgType_AD').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgProfile',query.fieldbyname('PgProfile').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgBitRate',query.fieldbyname('PgBitRate').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PgLifeEnd',query.fieldbyname('PgLifeEnd').AsString);
xmlfile.WriteString(listbox.Items.Strings[index],'PGOther',query.fieldbyname('PGOther').AsString);
xmlfile.Free;
ImportExportFrm.MyCopyFile(sourceDir+'.M2v',armDir+'.M2v');
ImportExportFrm.MyCopyFile(sourceDir+'.wav',armDir+'.wav');
ImportExportFrm.MyCopyFile(sourceDir+'.inx',armDir+'.inx');
end;在循环中,如果运行完第一遍后,运行第二遍时出错,说什么不能写到相应的INI文件中,请各位帮我找找错在什么地方,谢谢!
把xmlfile.Free换成FreeAndNil(xmlfile)看看怎么样?
你第一次已经写了一个INI了,这文件现在存在呢。
你现在想改写这个文件,最好的方法是在此前判断并删除这个文件再重建新文件!!