皆様いつもお世話になっております。
初歩的なことで大変お恥ずかしいのですが、ご指導お願い致します。
テキストファイル(htmlファイル)をMemoなど経由せずに直接String型の変数へ代入する方法を教えて頂きたいのですが。
目的はWebBrowserでダウンロードしたhtmlファイルからリンク先を抽出するための原文にしたいので、CRやLFやよけいな符号、文字が付加されない様にしたいのです。
テキストファイル(html文)をMemoやRichEditにロードしておき、
RichEdit1.Lines.LoadFromFile('index.html');
String型の変数に代入する解説はありました。
s = RichEdhit1.Text;
MemoやRichEditなどヴィジュアルなコンポーネントに代入してからString型変数に代入するわけにもいかず、いろいろ試しましたが解りません。
よろしくお願い致します。m(__)m
> RichEdit1.Lines.LoadFromFile('index.html');
でよいのなら
var
strList: TStringList;
begin
strList:= TStringList.Create;
try
strList.LoadFromFile('index.html');
....
finally
srtrList.Free;
end;
end;
RichEdit1.LinesとTStringListは同TStringsです
テキストデータとしてアクセスせずに読込むだけです。
var
S: String;
FS: TFileStream;
begin
S := '';
FS:= TFileStream.Create('c:\windows\デスクトップ\hogehoge.htm', fmOpenRead);
try
SetLength(S, FS.Size);
FS.Read(S[1], FS.Size);
finally
FS.Free;
end;
// 残りの処理 --------------------------------------------------
end;
通りすがちゃった人さん。早速教えて頂いてありがとうございました。
いや〜お恥ずかしい。勉強になります。
strList.LoadFromFile('test.txt');は、今までのレクチャーでやっていたのに、
s:String;
・・・
s:=strList.Text;
StringListの「Text」で代入できるのを知りませんでした。
ありがとうございました。
また教えてください。m(__)m
Basser さん、ご指導ありがとうございました。
TFileStream;は、全く知らなかったため、難解なDelphiのヘルプを読んでおりました。
>SetLength(S, FS.Size);
は、ファイルサイズ分をsにセットして
>FS.Read(S[1], FS.Size);
は、バッファーsの1番目から読み込んで転送するということでしょうか。
s[1]の添え字の意味が理解できません。
出来ましたら教えて頂けないでしょうか。m(__)m
>>SetLength(S, FS.Size);
>は、ファイルサイズ分をsにセットして
>>FS.Read(S[1], FS.Size);
>は、バッファーsの1番目から読み込んで転送するということでしょうか。
>s[1]の添え字の意味が理解できません。
>出来ましたら教えて頂けないでしょうか。m(__)m
添え字の意味ですが 武田さんが解釈されたとおりです。
文字列型は文字配列としてアクセスできるようになっています。
>は、バッファーsの1番目から読み込んで転送するということでしょうか。
>s[1]の添え字の意味が理解できません。
すみません。ボケていました。
× バッファーsの1番目から読み込んで転送する
○ バッファーsの先頭アドレスに読み込み
です。
Basser さん。早速ありがとうございました。
よくわかりました。
また教えてください。
ツイート | ![]() |