选择并加载txt文件到android应用程序(Delphi-XE5)

时间:2013-11-07 09:30:07

标签: delphi delphi-xe5

我想浏览SD卡,选择dir和file并将txt文件加载到我的Delphi XE5创建的Android应用程序中。

是否有任何标准组件或方法?喜欢OpedFileDialog?

2 个答案:

答案 0 :(得分:1)

Android上没有TOpenFileDialog的等效内容。它不是操作系统的一部分,并且在定位Android时无法从Component Palette中获得。

您可以通过查看设计器中的表单,然后检查Component Palette中的Dialogs选项卡来查看;所有组件都被禁用,这意味着它们不适用于目标平台。将鼠标悬停在其中任何一个上表示它们可用于Win32,Win64和OS X,但不适用于iOS或Android。

您可以使用可用的功能,基于TForm(或更好的,TPopup构建您自己的,这更适合移动设备的典型应用程序流程在IOUtils.TPath中检索目录和文件名。一旦你有了文件名,加载它的功能很简单,有多种方式可供选择 - 这里有几个:

  • 使用TFile.ReadAllLines(再次来自IOUtils
  • 加载它
  • TStringList.LoadFromFile
  • 使用TFileStream.LoadFromFile
  • 使用TMemo.Lines.LoadFromFile

答案 1 :(得分:0)

使用TStringList

TStringList.loadFromFile(file);
procedure TForm1.Button1Click(Sender: TObject);
var
   TextFile : TStringList;
   FileName : string;
begin

try
  textFile := TStringList.Create;
  try
  {$IFDEF ANDROID}//if the operative system is Android
     FileName := Format('%smyFile.txt',[GetHomePath]);
  {$ENDIF ANDROID}

  {$IFDEF WIN32}
     FileName := Format('%smyFile.txt',[ExtractFilePath(ParamStr(0))]);
  {$ENDIF WIN32}

  if FileExists(FileName) then begin
     textFile.LoadFromFile(FileName); //load the file in TStringList
     showmessage(textfile.Text);//there is the text
  end
  else begin showMessage('File not exists, Create New File');

     TextFile.Text := 'There is a new File (Here the contents)';
     TextFile.SaveToFile(FileName);//create a new file from a TStringList

  end;
  finally
     textFile.Free;
  end;
except
  on E : Exception do ShowMessage('ClassError: '+e.ClassName+#13#13+'Message: '+e.Message);
   end;
end;