pasteの件ではありがとうございました。
すみません、また質問させてください。
自作メモ帳で、stringlistを使って保存したデータを次のプログラムで読み込んだときに読み込めないという問題が出ました。
AssignFile(F, FileName); Reset(F);
i:=0;
repeat
i:=i+1;
readln(F,InBuff);
a[i]:=Inbuff;
until eof(f);
おかしいのは、「名前を付けて保存」したものは読み込めないのに、「上書き保存」したものは読み込める点です。
「名前を付けて保存」した後すぐに「上書き保存」したものは読み込めるんです。
if FileName2<>'' then
begin //上書き保存です
StrL := TStringList.Create;
try
StrL.Text := RichEdit1.Lines.Text;
StrL.SaveToFile(FileName2);
finally
StrL.Free;
end;
FormFiler.Caption:='FilerV2-----'+FileName2;
end
else
begin //名前をつけて保存です
if SaveDialog1.Execute then
begin
FileName2:=SaveDialog1.FileName;
StrL := TStringList.Create;
try
StrL.Text := RichEdit1.Lines.Text;
StrL.SaveToFile(FileName2);
finally
StrL.Free;
end;
FormFiler.Caption:='FilerV2---'+FileName2;
end;
end;
「名前を付けて保存」したものを読み込みたいんですが、どうしたらいいでしょうか。
よろしく、お願いします。
>読み込めない
というのは、具体的には、どのような現象なのでしょうか?
(「ファイルが見つからない」などのエラーが表示?とか・・)
よく分からんが、開いたファイルは閉じないのかい?
お世話になります。
delphi2009で両方ともコンパイルしています。
ファイルはきちんとできます。
delphi2009でコンパイルしoD・作メモ帳では読み込めます。
excelでも読み込めます。
しかし、delphi7でコンパイルしたメモ帳では読み込めません。
ただし、delphi7でコンパイルしoD・作メモ帳はricheditに直接loadfromfileしています。
delphi2009でコンパイルした最初に書いたプログラムでも読み込めません。
delphi2009でコンパイルしoD・作メモ帳で「12345]を保存すると
delphi7でコンパイルしoD・作メモ帳では「1]になります。
次にdelphi2009でコンパイルしoD・作メモ帳でで上書き保存すると、
delphi7でコンパイルしoD・作メモ帳で「12345」と読み込みます。
AssignFile(F, FileName); Reset(F);
i:=0;
repeat
i:=i+1;
readln(F,InBuff);
a[i]:=Inbuff;
until eof(f);
このプログラムは膨大なプログラムの中に組み込んでいるもので変更したくないんです。
delphi2009でコンパイルしoD・作メモ帳を直したいと思ってます。
よろしくお願いします。
あ さんも書かれてますが、
CloseFile 関数は使っていますか?
また、
> a[i]:=Inbuff;
の i は、1 から格納していますが、
0 から格納しなくてよいのですか?
どうもありがとうございました。
すみません。
私の勘違いで、名前をつけて保存では
if SaveDialog1.Execute then
を
with SaveDialog do
if execute then
としていました。
delphi2009ではこれがいけないみたいで、
if SaveDialog1.Execute then
に直すと、うまくいくようになりました。
また、よろしくお願いします。
ツイート | ![]() |