[Delphi] 個人的 逆引き関数リファレンス




トップページへ

※普段使用している関数だけなので数は少ないです

※逆引き、つまり「したいこと」から関数を探す一覧でリンク先はなるべく公式ですが、見つからない場合は諸先輩方のサイトです

※リンクの「記事」は当サイトの別記事です

 

Delphiメニューへ戻る

 

・改行:Windowsの改行はCRLFなので #13#10

・数字を文字列に→IntToStr

・文字列を数字に→StrToInt

・文字列を数字(整数)にできるかどうか?→TryStrToInt

サンプル

 

・年月日、時刻の書式→FormatDateTime

今日の日付のもっとも簡単なサンプル

FormatDateTime('yyyy.m.d', Date())

 

・現在の日時→Now

・今日→Date

・バリアント型を文字列に→VarToStr

・バリアント型を日付に→VarToDateTime記事

・文字列を日付型に→StrToDate

・日付の曜日を知りたい→DayOfWeek(ただしSun、日曜等ではなく数字)、記事

・TDateTime型を時・分・秒・ミリ秒に分解→DecodeTime記事

・通貨の書式→FormatCurr

・文字の検索→AnsiPos

・文字列で円マークが指定した場所にあるか?→IsPathDelimiter

・最後にある区切り文字の位置→LastDelimiter

・チェックリストボックスの一括処理→TCheckListBox.CheckAll

e.g. 一括でチェックを入れる CK_LISTBOX.CheckAll(cbChecked);

一括でチェックをはずす CK_LISTBOX.CheckAll(cbUnchecked);

 

・大文字を小文字に変換→AnsiLowerCase

・小文字を大文字に変換→AnsiUpperCase

・文字列の置換→StringReplace

・文字の長さ→LengthStrLen

・全角か半角か?→ByteType

・パスからファイル名を取り出したい→ExtractFileName

・[便利] ファイル名の拡張子が知りたい→ExtractFileExt *ピリオドあり

・ファイルが存在するか?→FileExists

・フォルダ(ディレクトリ)が存在するか?→DirectoryExists

・パスからドライブ名とフォルダ名(ディレクトリ名)を取り出したい

最後の円マークなし→ExtractFileDir

最後の円マークあり→ExtractFilePath

 

Delphiのソースコメント(コメントアウト) 公式

一行だけコメント //

複数行のコメントその1 {}

複数行のコメントその2 (* *)

※個人的に {} は中程度までの範囲、 (* *) はより広い範囲で使っています。

 

算術演算
・切り上げ→Ceil

・切り下げ→Floor記事

・奇数か?→Odd

・小数部の切り捨て→Trunc

 

条件分岐

if

case記事

 

繰り返し、ループ

repeat

while

for

→ループ処理のサンプル

 

goto

 

出力するテキストファイルの文末の改行を除去したい

目的:Windows以外のOSやMySQLの向けにテキストファイルを出力するため、最後の改行を除去したい

サンプル画像

上・文末に改行がある

(空白行があるように見えます)

下・文末に改行がない

サンプル画像 上・文末に改行がある (空白行があるように見えます) 下・文末に改行がない

 

対処法:TMemo型で保存する、もしくはTStringList.LineBreak(公式)を空にして保存する。(あくまでも我流です)

サンプルソースの概要:※解説のためのソースなのでそのままでは動きません。

1 w_honbunの中に保存したい文字列を「行単位で」あらかじめセットしてあるため、必ず改行(#13#10)が入っている状態です。

2 保存の直前に -2 することで文末の改行(#13#10)を除去します。

3 AまたはBどちらかの方法で対処できます。

3-A Memo1に代入して保存すればそのまま文末に改行のないテキストファイルができます。

3-B TStringList型(ここでは w_tsm )の場合は「w_tsm.LineBreak := ”」と改行文字を空にしてから保存をすることで、文末に改行のないテキストファイルができます。

    w_tsm: TStringList;
    Enc: TEncoding;
    w_honbun: String;
begin
省略
    w_honbun := Copy( w_honbun , 1, Length( w_honbun ) -2 );

    Memo1.Lines.Text := w_honbun;
    Memo1.Lines.SaveToFile( '\sitemap.txt', Enc);

    w_tsm.LineBreak := '';
    w_tsm.Text := w_honbun;
    w_tsm.SaveToFile( '\tsm-sitemap.txt', Enc);
省略

 

 

実行時のパラメータを参照する

コマンドラインで渡されたパラメータの数→ParamCount

パラメータをコマンドラインから取得→ParamStr

FormCreateイベントで処理を分岐する場合。

FormCreate(Sender: TObject)など
var  w_para: String;

if  ParamCount > 0 then begin
 w_para := ParamStr(1);

 処理の分岐
end;

(ただしFormCreateの場合、ボタンの.SetFocusやラジオグループの.ItemIndexを処理することはできません。理由はフォームが表示される前だからです)

 

ExcelのVBAで自作プログラムを呼ぶ場合

Shell("Delphiで作った自作ソフト.exe opt2", vbNormalFocus)

VBAの実行時にパラメータ(ここでは opt2)を1つ指定し、Delphi製アプリがパラメータを受け取りアップロードする内容(ファイル数、アップロード先)を変更しています。

 

Delphiメニューへ戻る

【PR】 Delphi (amazon) *見つからない場合があります

【PR】 Delphi (楽天市場) *見つからない場合があります




ほかの Delphi の記事

[Delphi] 時間のかかる処理は砂時計・ListBoxの高速化

[Delphi]小ネタ備忘録

[Delphi]MySQLへの接続で失敗(未解決)

[Delphi] Indyのエラー関連

[Delphi] Indyをバージョンアップする