使用loadFromFile()函数加载文件
Loading a file with the LoadFromFile () function with a newline
i使用LoadFromFile()
函数加载文本文件.txt
,并且线中间的文本用Newline 'n'
标记。LoadFromFile()
函数将该字符视为新线路,并通过创建新线路将该线路划分在该位置。在Windows系统中,文本看起来像这样:**Ala has ace**
加载此文件的程序看起来不同:
plik->LoadFromFile( path, TEncoding::ASCII);
for( short int i = 0; i < plik->Count; ++i )
Memo1->Lines->Add( plik->Strings[i] );
备忘录中的文本看起来像这样:
**Ala**
**has ace**
我可以删除 'n'
字符以制作整个行吗?
我今天早些时候在embarcadero论坛上回答了同样的问题,但我也会在这里回答。
plik
是TStringList
(根据其他讨论),因此当TStrings::LineBreak
属性与RTL的全局sLineBreak
常数匹配时,其LoadFrom...()
方法对待Bare-CR,Bare-LF和CRLF线平均断裂。如果LineBreak
属性与sLineBreak
不匹配,则TStrings
仅在与其LineBreak
属性匹配的线路断裂上分配。
由于RTL的sLineBreak
常数是Windows上的CRLF,而您却不想要在Bare-LF线路上分开,您将不得不解析文件数据手动,根本不使用TStrings::LoadFromFile()
。
例如,您可以使用System::Classes::TStreamReader::ReadToEnd()
或System::Ioutils::TFile::ReadAllText()
方法将整个文件读取到System::String
中(TStreamReader
和TFile
都有用于读取行的方法,但它们都同样对待所有三种形式的线路断开),然后分析String
在忽略任何裸lf字符的同时提取CRLF划分的子字符串。
理想情况下,您可以使用自己的LoadFromFile()
方法将文件加载到TMemo
中。但是,在这种情况下,这也不起作用,因为TMemo
在将数据传递给Win32 API之前将所有三种形式的线路断裂归一化为CRLF,因此这对您无用。
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- 树莓上的 Libtorch 无法加载 pt 文件,但在 ubuntu 上工作
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- SDL_LoadWAV未加载文件
- 如果流无法加载文件,并且无法打开
- 无法使用 fopen() 加载文件
- 如何在mac上为c++加载文件
- 如何以编程方式知道Adobe Reader完成了加载文件
- 使用loadFromFile()函数加载文件
- 使用微小的xml保存和加载文件
- C++加载文件
- C++从SQL数据库加载文件
- 从"Resource Files"文件夹加载文件C++ Windows 应用程序 (win32)
- 构建时如何在Visual Studio c++中加载文件
- 用dlsym加载文件,无法加载库
- 当在c#中加载c++ dll时,CLR是否会自动加载c++文件的依赖项?
- OpenCV视频捕获不加载文件
- 用char指针加载文件
- TinyXml解析器拒绝正确加载文件
- CMake 错误在 CMakeLists.txt:56 (include): 包含找不到加载文件: gmxVersion