我使用C ++ Builder制作Android应用程序。
我尝试将文本文件加载到TMemo
,但是出现错误:
目标多字节代码页中不存在Unicode字符的映射。
我使用TDirectory::GetFiles()
获取文件列表并将其添加到TListBox
:
TStringDynArray list;
TSearchOption searchOption;
searchOption = TSearchOption::soAllDirectories;
list = TDirectory::GetFiles(SYS_TxtDirectory, "*.txt", searchOption);
ListBox1->Items->Clear();
for(int i=0;i<list.Length;i++)
{
ListBox1->Items->Add(list[i]);
}
当我点击ListBox时,我得到一个带有完整路径的文件名:
AnsiString txtFileName; //store txt filename with full path
我希望将此文件加载到TMemo中。但是这些代码会导致错误:
代码1:
Memo1->Lines->LoadFromFile(txtFileName); //<----run to here,error occurred
代码2:
TStringStream * LrcFileStream;
LrcFileStream=new TStringStream();
LrcFileStream->LoadFromFile(txtFileName);
Memo1->Lines->LoadFromStream(LrcFileStream); //<----run to here,error occurred
delete LrcFileStream;
代码3:
TStringDynArray list;
list = TFile::ReadAllLines(LrcFile); //<----run to here,error occurred
Memo1->Lines->Clear();
for(int i=0;i<list.Length;i++)
{
Memo1->Lines->Add(list[i]);
}
代码4:
TStringList *ss=new TStringList();
ss->LoadFromFile(LrcFile); //<----run to here,error occurred
for(int i=0;i<ss->Count;i++)
{
TmpStr=TmpStr+ss->Strings[i];
}
delete ss;
如何将文本文件加载到TMemo
?
答案 0 :(得分:0)
这些代码现在正在Abdroid上运作。
TStringDynArray list;
UnicodeString TmpStr;
list = TFile::ReadAllLines(LrcFile,TEncoding::ANSI);
TmpStr="";
Memo1->Lines->Clear();
for(int i=0;i<list.Length;i++)
{
TmpStr=TmpStr+list[i];
}