こんにちは、やっとDelphiの参考書も見つけ流し読みをしてみて、
「さて、コンソールアプリケーションとやらでも作ってみるか!」と思いがんばってみました。
しか〜し!あらまっ、エラーだらけ!!やっとここまで減らしましたがこの先進めません。誰かシロウトでも相手をしてくださる方、教えてください。
内容:テキストを読み込んで128bで区切るという単純なものです(^_^;)
program chng;
uses
SysUtils;
{$APPTYPE CONSOLE}
var
F1 : textfile;
F2 : textfile;
instr : string;
outstr : string;
begin
begin
outstr := '';
assignfile( F1,'aaa.txt' );
reset(F1);
try
while not eof(F1) do
begin
readln(F1,instr);
while length(instr)>0 do
begin
outstr := outstr + leftstr(instr,128) + #13#10;
instr := delete(instr,1,128);
end;
end;
finally
closefile(F1);
end;
begin
assignfile(F2,'bbb.txt');
rewrite(F2);
writeln(F2,outstr);
closefile(F2);
end;
end.
[エラー] chng.dpr(23): 未定義の識別子 : 'leftstr'
[エラー] chng.dpr(24): 'String' と '関数、型無しポインタまたは型無しパラメータ' には互換性がありません
[エラー] chng.dpr(36): レコード、オブジェクトまたはクラスのいずれかが必要です
[エラー] chng.dpr(38): 'END' が必要な場所に ファイルの末尾 があります
win98se,Delphi6personal
leftstr()って使えないんですか?(んなわけないか...)
ん?rewrite()ってデフォルトのrecサイズは128・・・?
もしかしてそのまま移し変えればできちゃうんですか?
くだらない質問ですいません。
>outstr := outstr + leftstr(instr,128) + #13#10;
>instr := delete(instr,1,128);
outstr := outstr + Copy(instr,1,128) + #13#10;
Delete(instr,1,128);
手続き(procedure)…式の中で使えない。
関数(function) …式の中で使える。
ガンバ(^.^)
スパークさん、レス有難うございました。
なるほど、言われてみればそうですよねぇ〜(^_^;)
納得しました。
でも、36、38行目のエラーはそのまま残ってます。
だいたい36行目で終わりなのにどうしてですか?
END.の後には空白もないしまったくわかりません。
誰かヒントだけでもよろしくお願いします。
あっ、プログラム貼り付けたら見づらくなっちゃいました。
すいません。
わっかりました!
とりあえず解決です。
解決済みでしたが、一応蛇足の補足を(^^ゞ
>でも、36、38行目のエラーはそのまま残ってます。
begin、end の対応が間違ってたんでエラーになったんでしょうね。
まとめると以下のような…
(見やすいように、先頭に全角スペースを入れました)
--------------------------
begin //これは不要
begin
outstr := '';
assignfile( F1,'aaa.txt' );
reset(F1);
try
while not eof(F1) do
begin
readln(F1,instr);
while length(instr)>0 do
begin
outstr := outstr + leftstr(instr,128) + #13#10; // LeftStr関数は、usesに StrUtilsを追加すれば使える
instr := delete(instr,1,128); //Delete手続きは式で使えない。usesにSystemを追加する必要あり
end;
end;
finally
closefile(F1);
end;
begin //これは不要
assignfile(F2,'bbb.txt');
rewrite(F2);
writeln(F2,outstr);
closefile(F2); //これもtry..finally処理を入れた方が良い
end; //これは不要
end; //これが足りない
end.
-------------------------
ツイート | ![]() |