投稿

5月, 2024の投稿を表示しています

同じ行に左右、左右中央 のdivを置くcss

一行の中に左右、左-中央-右 のdivを置くcss 左・右 <div> <div style="float:left;">left</div> <div style="text-align:right;">right</div> </div> 左・中央・右 <div style="display:flex; justify-content:center; position: relative;"> <div style="position:absolute; left:0">left</div> <div>center</div> <div style="position:absolute; right:0">right</div> </div> 後者は center の div 必須です

ソフトポーズやハードポーズが機能しない通話(番号)

 携帯電話などの通話開始後、あらかじめ登録したPB信号を送出する、ソフトポーズやハードポーズが機能しない通話がある ソフトポーズ(,) = 一定時間後に送出する ハードポーズ(;) = 端末操作により送出 着信課金(0120, 0800)のフリーコール(フリーダイヤル等)や災害伝言ダイヤルがそれで これらは、発信側に課金開始の情報(アナログ回線で言えば、レバース)が送られてこないため、端末側が呼び出し状態なのか通話状態なのか判断できておらず、ポーズ機能の開始を判断できていないためと思われる ちなみに、呼び出し時のリングバックトーンは被呼側から送られてきており(例 ソフトバンク携帯のププッという冒頭音)その延長と端末が判断している可能性がある

mysqli から View を select しても結果が得られない

PHP で mysqli ( prepare )を使用して、SELECTにビューを指定したが、結果が得られなかった さくらのレンタルサーバ上 mysql 5.7, php 8.0.30 phpMyAdmin からは表示可能(ビューをそこで作成したからね) テーブルと単純なビューを作成して確認 → ビューのみ結果が得られない mysql側の権限を疑ったが、レンタルサーバにビューの詳細な設定はなし mysqli のオプションを確認するが、それっぽいのは見つからず 「mysqli view select not working」等で調べるとかなり古くから問題がある様子 PDOを使って解決 とか、そんな中  prepare 以外は動作する みたいな話を発見 確認したら PDO で確認 → OK mysqli::query  で確認 → OK mysqli + prepare + View という組み合わせがNGらしい 他を mysqli で作っていたので mysqli:query を使用することにしました ※インジェクション対策 mysqli_real_escape_string() で文字列のエスケープを忘れずに

javascript の fetch で json を受け取る

javascript の fetch で json を受け取る 下記のようなjsonを受信する場合 { "title": "タイトル", "body": "本文" } response.json() では素のテキストでもなく、配列でもなさそうなので fetch(url) .then((response) => { return response.json(); }).then((json) => { console.log(json.title); }) という感じで受け取る

Delphi の record ポインタの Dispose で文字列が開放されない

Delphi の record ポインタの Dispose で文字列が開放されない ListView Item の Data へポインタとしてレコード型を投入、OnDeletion で開放というコード type TItemRec = record Name, Value: string; end; PItemRec = ^TItemRec; var ItemRec: TItemRec; PItem: PItemRec; // 文字列投入 ItemRec.Name := 'key'; ItemRec.Value := 'val'; New(PItem); PItem^ := ItemRec; ListItem := ListView1.Items.Add; ListItem.Data := PItem; // Dataへポインタを投入 // リスト削除時に開放 procedure TForm1.ListView1Deletion(Sender: TObject; Item: TListItem); begin if (Item.Data <> nil) then begin Dispose(Item.Data); end; end; このコード、文字列2つが開放されない Dispose で元のレコード型にキャストして開放すればよいらしい procedure TForm1.ListView1Deletion(Sender: TObject; Item: TListItem); begin if (Item.Data <> nil) then begin Dispose(PItemRec(Item.Data)); end; end;