質問なのですが調べて見ましたがよく分からず質問させて頂きます
例えばEdit1.Textの中にファイル名で使用できない;:<>などがあった場合保存させずに中止させる方法が良く分かりません、
LastDelimiter関数を使えば出来ると過去ログにありましたが使用方法がいまいちよく分かりません、
ご存知の方がいましたら宜しくお願いします。
ほとんどの保存処理では、
エラーが有った場合、Falseをかえしますので、
それを使えるなら利用した方が良いです。
=例=(Memo1.LinesをEdit1.Textに保存
if not Memo1.Lines.SaveToFile(Edit1.Text) then
begin
ShowMessage('保存できませんでした')
end;
procedure TForm1.Button1Click(Sender: TObject);
const
Delimiters='\/:*?"<>|'; //ファイル名に使えない文字?
var
L: integer;
begin
L:= LastDelimiter(Delimiters, Edit1.Text);
if L>0 then
ShowMessage(IntToStr(L)+'Byte目の文字がNGです') else
ShowMessage('OK');
end;
るるとん@Kさん、Qさん、ありがとうございます
Qさんのをそのまま使って見た所できました(^^)
フォルダを作る時にも応用できそうです
またるるとん@Kさんのアドバイスも勉強になりこれも応用できそうです
この度は本当にありがとうございました
そもそも入力できないようにするとかも
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
(* ファイル名に使えない文字は無効化。 *)
if Key in ['\', '/', ':', ',', ';', '*', '?', '"', '<', '>', '|'] then
begin
Key := #0;
Beep;
end;
end;
なるほど・・そういう手段もあるのですね
Mark さんありがとうございます
さっそく上記のも使ってみようと思います、ありがとうございました
ツイート | ![]() |