如何将文本文件加载到Tmemo(Android,C ++ Builder)

时间:2016-10-11 15:25:38

标签: android unicode c++builder

我使用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

1 个答案:

答案 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]; 
}