例如我用RichEdit往ini里寫入3行字符,假設是1,2,3 。
用關鍵字(Test)寫入,在ini小節下面顯示如下
Test=1
2
3
但是我再想將小節下面的全部3行字符一起讀取出來,卻不行。只能讀出帶關鍵字的第一行。
我現在想將3行一次性讀出到RichEdit里,要怎麼寫。
請各位指教,非常感謝!
用關鍵字(Test)寫入,在ini小節下面顯示如下
Test=1
2
3
但是我再想將小節下面的全部3行字符一起讀取出來,卻不行。只能讀出帶關鍵字的第一行。
我現在想將3行一次性讀出到RichEdit里,要怎麼寫。
請各位指教,非常感謝!
Test=1|2|3
读取后再以“|”分割,也可以直接打开ini文件一行一行的读,不使用tinifile
begin
richedit1.lines.loadfromfile('your.ini');
end;
如果不用ini,其他什麽方法可以實現類似功能?
然后一行一行的循环判断,其实主要判断是否有=号,有=号即为小节所在行,取得要读的小节的所在的行,然后往下依次读取判断即可
var IniFile: TIniFile;
sTemp: String;
begin
IniFile := TIniFile.Create('FileName');
try
sTemp := '1' + sLineBreak + '2' + sLineBreak + '3';
// Save
IniFile.WriteString('Section', 'Test', StringReplace(sTemp, sLineBreak, '|', [rfReplaceAll]));
// Load
sTemp := StringReplace(IniFile.ReadString('Section', 'Test', ''), '|', sLineBreak, [rfReplaceAll]);
finally
IniFile.Free;
end;
end;
{
fileName.ini
[test]
1
2
3
}
var
Ini : TMemIniFile;
tempList : TStringList;
begin
Ini := TMemIniFile.Create('fileName.ini');
tempList := TStringList.Create;
Ini.ReadSectionValues('test', tempList);
Ini.Free; Memo1.Lines.Assign(tempList);
tempList.Free;
其实我上面说的使用 ini 的 riteBinaryStream/ReadBinaryStream 完全满足了楼主的要求。
或者采用:
linecount=3
line1=1
line2=2
line3=3
再写过专门读取这种类型的函数,就可以了