Я использую C ++ Builder 10.3 с платформой VCL 32bit. Мне нужно знать лучший способ поиска текстового файла в памяти. Я написал код ниже, который открывает текстовый файл в компоненте RichEdit, ищет и выделяет некоторый текст. RichEdit предназначен для использования в качестве визуального компонента. TMemoryStream и TStringStream используются в памяти, но не предлагают методы FindText, SelStart, SelLength и SelText. Вы можете показать, как это сделать в памяти?
UnicodeString MyCrumb;
int StartPos=0, ToEnd=0, FoundAt=0, StartCrumb=0;
TSearchTypes mySearchTypes = TSearchTypes();
RichEdit1->Lines->LoadFromFile( "CrumbFile.txt" );
ToEnd = RichEdit1->Text.Length();
FoundAt = RichEdit1->FindText(L"CrumbStore", StartPos, ToEnd, mySearchTypes);
StartPos = FoundAt+10;
FoundAt = RichEdit1->FindText("crumb", StartPos, ToEnd, mySearchTypes);
StartPos = FoundAt+8;
StartCrumb = FoundAt+8;
FoundAt = RichEdit1->FindText("}", StartPos, ToEnd, mySearchTypes);
EndPos = FoundAt-1;
RichEdit1->SelStart = StartPos;
RichEdit1->SelLength = ( EndPos-StartPos );
MyCrumb = RichEdit1->SelText;