カテゴリー: 未分類

  • [Excel]全角半角の変換

    [Excel]全角半角の変換

    Excel

    全角=JIS(値)
    半角=ASC(値)
  • [HTML]本文のまわりにある部品

    ヘッダー

     多くのホームページ(最初のページ)には画面上部に『ヘッダー』があります。サイトのロゴやタイトルのほか、ナビゲーション要素のメニューやパンくずリストが配置されていることがあります。

    ヘッダー
    本文

    サイドバー

     ナビゲーション要素のメニュー、ブログのカテゴリーや履歴などを中心に、ヘッダーを表示しないときはサイトのロゴやタイトルを配置します。スマートフォンなど縦長の携帯端末では配置しません。

    サイドバー
    本文

    フッター

     著作権表示や、本文に関連するページへのリンクを配置します。

    本文
    フッター

  • DokuWikiのページにインラインJavaScriptを埋め込む

     近ごろのマイブームはパスワード生成です あっちこっちにパスワードを生成するコードを埋め込んでいます Windwos Bat, VBScript, JavaScript, PHP と使う言語は様々です
     今回、DokuWikiにJavaScriptを埋め込みました 思ったよりも簡単でした

    <HTML>
    <script type="text/javascript">
    document.write(値);
    </script>
    </HTML>
  • [CSS]すきま

    margin

    モノの外側のすきまを指定できます

    margin:値;
    margin:上下 左右;
    margin:上 右 下 左;
    margin-top:値;
    margin-bottom:値;
    margin-left:値;
    margin-right:値;

    padding

    モノの内側のすきまを指定します

    padding:値;
    padding:上下 左右;
    padding:上 右 下 左;
    padding-top:値;
    padding-bottom:値;
    padding-left:値;
    padding-right:値;

    line-height

    文字を表示する場所の高さを指定します 高さが3文字分なら、文字上下のすきまは1文字ずつになります 縦書きのときは左右のすきまになります

    line-height:値;

    あたい
    <div style="border:solid thin; width:3em; line-height:3em;">あたい</div>

    あたい
    <div style="border:solid thin; writing-mode:vertical-rl; text-orientation:upright; height:3em; line-height:3em;">あたい</div>

  • 開発者向けの説明

    開発者向けの説明

    Web デザインと開発を学ぶすべての人向けに設計されています。
    ベスト プラクティス設計を計画する方法と、Web 標準を使用してコーディングする方法を示します。
    基本的な概念を説明する迅速かつシンプルな記事もあれば、より複雑なトピックを探求する詳細なアプローチを採用している記事もあります。
    これらはすべて、初心者および中級の Web デザイナーや開発者に適しています。

    デビッド・ワトソンによる開発者向けの説明 ~より良い Web の構築を支援する~

    とても分かりやすいと感じました

  • 新しいパスワードを生成

     セキュリティを考えたらパスワードを使いまわしたくないけれど、新しいパスワードを考えるのが面倒くさい、いつも似たようなパスワードになってしまう そんなあなたのために新しいパスワードを提案します ページを開くたびに新しいパスワードを提案します

     大文字小文字の英字・数字・記号{@#$}をまぜた新しいパスワードです 他の文字と誤認されやすいアルファベットの{l, I, O}を含みません

    新しいパスワード(12桁、PHPで生成):R3fyWc9k7p$y

     PHPとJavaScriptで書いてみました PHPはサーバーで処理し、JavaScriptはクライアントで処理します そのためブラウザーでページのソースを表示をすると、PHPのところは処理結果が表示され、JavaScriptのところはプログラムのコードがそのまま表示されます

  • Joomla!

    Joomla!

    インターネットに文章を公開するために使えます(WordPressみたいなもの)
    Joomla!

    インストール

    次のページからダウンロードし、解凍して、FTPでサーバーへアップロードします
    Joomla! Downloads

    サーバーのPHP設定「MB Language」を「neutral」にしておく必要があります(.htaccessファイルを更新)
    XServerでは管理画面で設定変更できます(.htaccessファイルはダメ)

    ブラウザーから Joomla! のページを開くとインストールが始まります
    日本語対応は管理画面からおこなえます(ランゲージパックをサイトからダウンロード不要)

    サイトアイコン(favicon.ico)

    FTPで次のパスに favicon.ico をアップロードします
    media/templates/site/テンプレート名/images/

    ユーザー側がみるサイトのアイコンが替わります
    管理画面のアイコンは変更されません

    The Joomla! Favicons

    拡張機能

    何かの機能を追加していたときにインストールに失敗しました
    その後どのページを開いても「Class “JPlugin” not found」と表示されるようになりました
    すべての管理画面が使えなくなりましたのでFTPからJoomla!のディレクトリ毎削除しました

  • OsClass

    OsClass

    ユーザーコミュニティサイトや広告サイトを構築するプラットフォーム OsClass で検索するといくつかのサイトが出てきます
    更新履歴を見たところ根っこが同じで、3つに分裂してそれぞれが進化している様子です フォークって言うんですよね

    歴史

    → Osclass by OsclassPoint(Osclass 4.0.0 – 4.4.0, 8.0.0 – 8.3.0, 2020/09-):Apache License 2.0 ※多言語対応

    → Osclass by Mindstellar(Osclass 5.0.0 – 5.1.1):GPL-3.0 license ※停滞気味

     ↑ Osclass 3.9.0(-2019/11) を引き継いで開発

    → Osclass Enterprise by Enterprise Classifieds(Osclass 3.8.1, 3.10.0 – 3.10.4, 2019/09-):Apache License 2.0

     ↑ Osclass 3.7.4 – 3.8.0(-2018/07) を引き継いで開発

    Osclass (Osclass -3.7.5 -2018/06):Apache License 2.0

    インストール

    次のページからダウンロードし、解凍して、FTPでサーバーへ保存します
    Download Osclass – Free Classifieds Script

    サーバーにMySQLデータベースを用意します

    ブラウザーからOsclassのページを開くとインストールが始まります

    次のページから言語パックをダウンロードし、管理画面の グローバル>言語 の右上にある言語を追加から言語パックをアップロードします
    Osclass Language Packs & Translations

    管理画面の 設定>一般 ページにある ローカライゼーション設定>標準言語Japanese を選んで、変更を保存します

    テーマやプラグインはマーケットサイト(OsclassPoint)があります
    更新がゆったりしていますが、v3, v4, v8 用は最新のOsclassでも使えるみたいです(フォーラムの投稿より)

    摘要

    管理画面の 広告>広告の管理 を選択すると次のエラーが出ます (Osclass v8.3.0)

    Fatal error: Uncaught ArgumentCountError: 3 arguments are required, 2 given in /(パス)/osclass/oc-admin/items.php:922 Stack trace: #0 /(パス)/osclass/oc-admin/items.php(922): sprintf('\xE9\x81\xB8\xE6\x8A\x9E\xE3\x81\x95\xE3\x82\x8C\xE3\x81\x9F...', '\xE5\x89\x8A\xE9\x99\xA4') #1 /(パス)/osclass/oc-admin/index.php(110): CAdminItems->doModel() #2 {main} thrown in /(パス)/osclass/oc-admin/items.php on line 922
  • 外国の情報を得る方法

    外国の情報を得る方法

     インターネットのウエブサーバーにはドメインが付いており、国別ドメインが使われることが多いです (このサイトは .JP ドメインです)

     特定の国の情報を得るために、特定の国別ドメインを検索サイトで検索することができます
    例:日本のサイトを表示したいときは「site:.jp」(エス・アイ・ティ・イー・コロン・ピリオド・ジェイ・ピィ)とだけ入力して Enter キーを押します

     トップレベルドメインの一覧は Wikipedia ↓ にあります
    トップレベルドメイン一覧 (Wikipedia)
    ウクライナの情報を得たいときは「site:.ua」ですし、ロシアなら「site:.ru」です

     ウェブブラウザーが自動翻訳してくれるため、世界中のサイト・色々な立場から発信された情報を得ることができます
    世界中のあらゆる言葉を学ばなくても情報が得られる、便利な時代になりましたね

    このページのアイキャッチ画像は NASA識別子: as17-148-22727 です

  • [WordPress]テーマの使用例

    [WordPress]テーマの使用例

    WordPressのテーマを何ににするかで見た目が変わってきます
    カミュプリィが使った(使いたい)テーマを紹介します

    コーポレートサイトTwenty Twenty-Four
     過去にはCocoonを使ったことがあります、 新しくXWRITEという有料テーマが開発されているようです
     WordPress以外では、メモ帳でHTML・CSSを手書きしたり、Wixでホスティングしてもらったり、baserCMSだったりしたこともあります

    社内規定:Luxeritas
     会社の就業規則などの各種規定を公開するサイトで使っています、 労働条件通知書でURLを案内しています

    カミュプリィの雑多なメモTwenty Twenty-Five
     このサイトです

    ハコページ(hakopage)Lightning
     ハコページでは有料テーマを使っています


  • [C#]バージョンに*を使う

     コンパイルするたびに異なるバージョンにしたいとき、ワイルドカード(アスタリスク *)を使うことができます (.NET 9 SDK で試しています)

    *.csproj

    ワルイドカードを使えるように *.csproj ファイルを設定します
    次のように Deterministic 行を追加し、false を設定します

    <Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
    (省略)
    <Deterministic>false</Deterministic>
    </PropertyGroup>
    </Project>

    *.AssemblyInfo.cs

     いちどコンパイルすると .\obj\Release\net9.0-windows\win-x64\*.AssemblyInfo.cs ファイルがつくられますが、そのファイルにある AssemblyVersionAttribute を 1.0.* などワルイドカード付きに変更します
     バージョンを設定する行が複数ありますが、他の AssemblyFileVersionAttribute, AssemblyInformationalVersionAttribute などは削除して構いません

     バージョンなどよく変更するものは *.AssemblyInfo.cs から削除して、Main 関数がある Program.cs ファイルなどへ移すことができます

  • [WordPress]テーマを自作する

    [WordPress]テーマを自作する

    新しいテーマのファイルを配置

     WordPressをインストールしたフォルダのwp-content/themesフォルダに、テーマのフォルダを作成します
     テーマのフォルダ名はWordPressの管理画面に表示されます
     レンタルサーバの簡単インストールで作成されたWordPressでも大丈夫です

    作成したテーマのフォルダに次のファイルを新規作成します
    FTPが必要です

    functions.php : 中身は不要です

    readme.txt : 中身は不要です

    style.css : UTF-8で次のように記載します

    /*
    Theme Name: カミュプリィのテーマ
    Author: Commuply Inc.
    Description: 自作テーマです
    Version: 0.0
    */

    index.php : UTF-8で次のように記載します
    (投稿を表示するために必要ですが、templates/index.html を置く方法もあります)

    <?php get_header(); ?>
      <div>
        <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
          <h2>
            <a href="<?php the_permalink(); ?>">
              <?php the_title(); ?>
            </a>
          </h2>
          <?php the_content(); ?>
          <?php endwhile; endif; ?>
      </div>
    <?php get_footer(); ?>

    screenshot.png : テーマを表示する画像を横880 x 縦660 または 横1200 x 縦900 で配置します

    自作テーマに切り替え

    WordPressの管理画面で 外観 > テーマ で切り替えます

    自作テーマのチェック

    Theme Check」プラグイン(作者: Themes チーム)を追加します

    外観 > Theme Check、もしくは テーマの画像が大きく表示されているところにある「Theme Check」ボタンからチェックできます

  • [言語比較]検索される文字値の検索値より右側

    [言語比較]検索される文字値の検索値より右側

    C#

    ○番目の検索値より右側を返すユーザー関数です

    /// <summary>
    /// ○番目の検索値より右側
    /// </summary>
    /// <returns>検索値より右側</returns>
    /// <param name="source">検索される値</param>
    /// <param name="key">検索値</param>
    /// <param name="nth">何番目の検索値?(1-)</param>
    string StrRight(string source, string key, int nth = 1)
    {
    	string result = @"";
    	if(1  >nth)
    	{
    		return result;
    	}
    	int start = 0;
    	int next;
    	for(int i = 1; i <= nth; i++)
    	{
    		next = source.IndexOf(key, start, StringComparison.CurrentCultureIgnoreCase);
    		if(0 > next)
    		{
    			start = 0;
    			break;
    		}
    		start = next + key.Length;
    	}
    	if(0 < start)
    	{
    		result = source.Substring(start);
    	}
    	return result;
    }

    Excel

    最初の検索値より右側を返す式はこちらです

    =LET(VKEY,検索値,VVALUE,検索される値,VERROR,エラー時の値,IFERROR(MID(VVALUE,FIND(VKEY,VVALUE)+LEN(VKEY),LEN(VVALUE)),VERROR))

    最後の検索値より右側を返す式はこちらです(LETでまとめていません)
    検索値を仮の検索値へ置換し、切り出した後に検索値を戻しています

    =IF(ISERROR(FIND(検索値,検索される値)),検索される値,MID(検索される値,FIND(仮の検索値,SUBSTITUTE(検索される値,検索値,仮の検索値,LEN(検索される値)-LEN(SUBSTITUTE(検索される値,検索値,""))))+1,LEN(検索される値)))

    Lotus Script 言語

    左側から検索される値を検索します
    文字値 = StrRight (検索される値,検索値,比較方法,何番目の検索値?)
    文字値 = StrRight (検索される値,検索値,比較方法)
    文字値 = StrRight (検索される値,検索値)

    右側から検索される値を検索します
    文字値 = StrRightBack (検索される値,検索値,比較方法,何番目の検索値?)
    文字値 = StrRightBack (検索される値,検索値,比較方法)
    文字値 = StrRightBack (検索される値,検索値)

    比較方法
    0 = 大文字小文字、全角半角を区別します
    1 = 大文字小文字を区別しません
    4 = 全角半角を区別しません
    5 = 大文字小文字、全角半角を区別しません

    戻り値には検索値を含みません
    例: {ABC} = StrRight ({ABCABC},{c},1,2)

  • パソコン無いけどホームページが欲しい

    パソコン無いけどホームページが欲しい

    商売をしているので、お勧めを紹介したり、休業日をお知らせしたり、アンケートを取ったり、来店(来所)予約を受けたりなど、お客様との接点になるホームページが欲しいです

    今は店内やお店のシャッターに張り紙したり、白板黒板に書いたりしています、 パソコンを持ってないし使えないけど、スマートフォンやタブレットなら使っています

    叶える方法があります

    ご紹介したいことはあるんだけど、パソコンはからっきし苦手なんだよねという皆さまに紹介したいサービスがあります

    いただいた文章と画像を使ってホームページを立ち上げる、ハコページのサービスがあります
    立ち上げたばかりのサービスで、今はモニター価格を提供しています

    サーバー共用・サブドメインとCMSを専用で提供してコストを抑えた上で、月額固定料金で提供します
    ご自身でサーバーを契約したりCMSを用意したりと一通りの環境を整える必要がありません

  • [WordPress]サイトアドレスを変更

    [WordPress]サイトアドレスを変更

    既存のWordPressを更改するために、サブフォルダをつくって作成し、最後にURLをドメイン直下へ変更して表示を切り替える方法です

    WordPress >> サイトアドレス (#1)

    WordPress >> 設定 >> 一般 >> サイトアドレス を変更して保存します

    WordPress >> WordPress アドレス (#2)

    WordPress >> 設定 >> 一般 >> WordPress アドレス にある「.htaccess」と「index.php」を取得します

    サイトアドレス (#1) にアクセスしたユーザーを WordPress アドレス (#2) へ

    WordPressは、WordPressが入っている WordPress アドレス (#2) のファイルを更新しますが、その外にある サイトアドレス (#1) を更新しません

    ブラウザーからサイトアドレス (#1) にアクセスしたら、WordPress本体がある WordPress アドレス (#2) を案内する設定が求められます

    index.php

    WordPress アドレス (#2) を案内するファイルです

    サイトアドレス (#1) に index.php がなかったら、WordPress アドレス (#2) からコピペします そして次のところを書き換えます

    (旧)
    require __DIR__ . '/wp-blog-header.php';
     ↓
    (新)
    require __DIR__ . '/サブフォルダ/wp-blog-header.php';

    .htaccess

    優先順位の設定をいれるファイルです

    サイトアドレス (#1) に index.php がなかったら、WordPress アドレス (#2) からコピペします そして DirectoryIndex に続けて index.php を記載して、 index.php が最優先で開かれるようにします

    (旧)
    DirectoryIndex index.html
     ↓
    (新)
    DirectoryIndex index.php index.html

    こちらの記事が参考になるかもしれません:.htaccessファイルの使い方

  • 資本論 (Das Kapital)

    資本論 (Das Kapital)

    著者:カール マルクス (Karl Marx) 1818-1883

    原文:ドイツ語

    資本論 第1巻 (Das Kapital. Erstes Buch) 資本の生産プロセス (Der Produktionsprozeß des Kapitals)

    資本論 第2巻 (Das Kapital. Buch II) 資本の循環過程 (Der Zirkulationsprozeß des Kapitals)

    資本論 第3巻 (Das Kapital. Buch III) 資本主義的生産の全過程 (Der Gesamtprozeß der kapitalistischen Produktion)

    画像は「https://sammlung.staedelmuseum.de/de/werk/portraet-karl-marx」より

    なぜこの投稿をおこなったか

    ブラウザによる機械翻訳がとても優秀だと感じます
    翻訳者を介さないことで、読者に新しい発見があるかもと考えました

  • [WordPress]投稿を更新日順にする

    [WordPress]投稿を更新日順にする

    ワードブレス(WordPress)の標準テーマ「Twenty Twenty-Five」で、新しい投稿から順に表示されるようにする方法です

    1. WordPressの管理画面へログインします
    2. 左側の「ツール」を選び、右側の「Theme Functions (functions.php)」を選びます
    3. 真ん中のファイルの内容の一番下に次のコードを追加します
    /**
     * 記事の並び順を更新日にする
     */
    function sort_post_asc($query) {
      $query->set( 'orderby', 'modified' );
    }
    add_action( 'pre_get_posts', 'sort_post_asc' );

    テーマ毎のファイルを更新するため、テーマが更新されたり、テーマを変更すると初期化されます

  • ディレクトリを削除

    ファイルとディレクトリ(フォルダ)を削除します

    Windows コマンドプロンプト

    rmdir /s /q ディレクトリ
  • ファイルをコピー

    Windows コマンドプロンプト

    robocopy

    ファイル名をそのままにコピーします 不足するディレクトリは作られます

    robocopy 元パス 先パス ファイル名 /XL /XO /XX /R:0
    /XL : コピー先にないファイルを除外
    /XX : コピー元にないファイルを除外
    /XO : コピー先が新しいものを除外

    xcopy

    ファイル名を変えてコピーできます

    xcopy コピー元 コピー先

    xcopyから「先は受け側のファイル名ですか、またはディレクトリ名ですか(F=ファイル、D=ディレクトリ)?」とたずねられることがあります 1回応答するだけなら次のように対応することができます

    echo 応答|xcopy コピー元 コピー先
    応答は「F」や「D」

    copy

    ファイル名を変えてコピーできます

    copy コピー元 コピー先

  • ディレクトリがある?

    C#

    true/false = System.IO.Directory.Exists(パス);
  • [C#]プログラムを呼び出すときの引数

    次のようにコマンドライン引数を参照できます

    string[] args = System.Environment.GetCommandLineArgs();
    int i = 0;
    foreach (string arg in args)
    {
    	System.IO.File.AppendAllText(ログファイルパス, ++i + @") " + arg + System.Environment.NewLine);
    }
    
    ↓
    
    1) ドライブ:ディレクトリ\ファイル名
  • [Windows]レジストリを検索

    レジストリエディタ (regedit) の検索機能を使うか、すべてのレジストリを *.reg 形式で書き出したものを type *.reg|find /i”検索値”>ログ.txt とします

  • .NET SDK インストールとコンパイル

    ダウンロード

    .NET SDK をダウンロードします

    .NET ダウンロード

    .NET と C# バージョンの組み合わせ

    .NETC#
    .NET 10C# 14
    .NET 9C# 13
    .NET 8C# 12
    .NET 7C# 11

    C# の歴史 C# の新機能の各バージョンに .NET と C# バージョンの組み合わせが書かれています

    インストール

    アンインストール

    既にはいっているバージョンを確認します

    dotnet --list-runtimes

    『プログラムの追加と削除』から『.net』で検索してアンインストールできます

    インストール

    ダウンロードした『dotnet-sdk-***.exe』を実行します

    最初のアプリ作成

    コンソールアプリ

    テンプレート作成

    インストール済みのテンプレートを確認します

    dotnet new list

    コンソールのテンプレートを作成します

    cd /d "テンプレートを作成するフォルダの場所"
    dotnet new console -o 新しいアプリ名

    コンパイル

    cd /d "テンプレートを作成するフォルダの場所\新しいアプリ名"
    dotnet publish -c Release -r win-x64 -p:PublishSingleFile=true -p:PublishReadyToRun=true

    コンパイルした *.exe ファイルは次の場所に作成されます

    テンプレートを作成するフォルダの場所\新しいアプリ名\bin\Release\netバージョン\win-x64\publish

    Win Forms アプリ

    画面がある Win Forms アプリをつくる方法はこのようになります exeファイルの場所はコンソールアプリと同じです

    cd /d "テンプレートを作成するフォルダの場所"
    dotnet new winforms -o 新しいアプリ名
    cd 新しいアプリ名
    dotnet publish -c Release -r win-x64 -p:PublishSingleFile=true -p:PublishReadyToRun=true

    アプリのアイコン

    アプリにアイコンを追加するには、アイコンファイル (*.ico) を用意します

    「アプリケーション名.csproj」ファイルをメモ帳で開きます

    「<PropertyGroup>」から「</PropertyGroup>」のあいだに次の行を挿入します
    <ApplicationIcon>アイコンファイル名</ApplicationIcon>

    詳細情報

    exeファイルに詳細情報を埋め込むには、「テンプレートを作成するフォルダの場所\新しいアプリ名\obj\Release\netバージョン\win-x64」フォルダにある「アプリケーション名.AssemblyInfo.cs」ファイルをメモ帳で開きます

    著作権
    (挿入)[assembly: System.Reflection.AssemblyCopyrightAttribute(著作権表示)")]
    
    製品名
    [assembly: System.Reflection.AssemblyProductAttribute("製品名")]
    
    説明・ファイルの説明
    [assembly: System.Reflection.AssemblyTitleAttribute("説明")]
    
    製品バージョン
    [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.2.3")]
    
    ファイルバージョン
    [assembly: System.Reflection.AssemblyFileVersionAttribute("1.2.3.4")]
    

    その他

    .NET 9 では、画面のハードコピーを取得するときは拡大率を考えずに普通にできます .NET 4 のときは面倒でした

    dotnet での開発を説明した記事

    自動でスクリーンショットを取得 (.NET C#)

    dotnet で開発したアプリ

  • [Windows]ファイル名を作成日にする

    作業証跡として画面ハードコピーした画像ファイルなど、似たようなファイルか大量にあるときはファイル名がまとめて一括で作成日に変更できたらいいなとおもうことがあります

    そんな要望があったため「ファイル名を作成日にする.exe」をつくってしまいました

    [Windows]画像ファイル名を作成日にする

  • [言語比較]切り上げ・切り捨て・四捨五入

    [言語比較]切り上げ・切り捨て・四捨五入

    Excel

     切り上げ

    =ROUNDUP(数値,桁数)
     「数値」:切り上げしたい数値または、セルの位置を指定します。
     「桁数」:切り上げしたい桁数を指定します。

    切り捨て

    =ROUNDDOWN(数値,桁数)
    =TRUNK(数値,桁数)
     「数値」:切り捨てしたい数値またはセルの位置を指定します。
     「桁数」:切り捨てしたい桁数を指定します。※桁数のあつかいに関しては、ROUND 関数と同様です。
    
    =INT(数値)
    =TRUNK(数値)
     小数点以下の数値を切り捨てて整数にするときに使う関数です。

    四捨五入

    =ROUND(数値,桁数)
     「数値」:四捨五入したい数値または、セルの位置を指定します。
     「桁数」:四捨五入したい桁数を整数で指定します。指定した桁数のひとつ下の桁が四捨五入されます。

    Java

    整数除算

    整数 = 整数 / 整数;
     整数(intやlong)同士の割り算(/)の結果は整数になります

    Lotus Script

    切り捨て

    整数 = Fix(数値)
     絶対値が小さい方向に丸めます
     (例)98 = Fix(98.7)
     (例)-98 = Fix(-98.7)
    整数 = Int(数値)
     値が小さいほうに丸めます
     (例)98 = Fix(98.7)
     (例)-99 = Fix(-98.7)

    整数除算

    数値 = 整数 ¥ 整数
     ¥(エンマーク)での割り算は、割り算をする前に値を整数にします
     3÷3.3は、3÷3としてから割り算されます

    Lotus 式言語

    切り捨て

    整数 = @Integer(数値)
  • [言語比較]プログラムのファイルパス

    [言語比較]プログラムのファイルパス

     今動いているプログラムファイルのパス(ディレクトリとファイル)を取得してみましょう。現在のプログラムファイルであって、カレントディレクトリとは異なります

    Windows コマンドプロンプト

    %~dp0
    末尾に\マークが付きます

    C#

     いくつかの方法があります。プログラムを使用する環境で正しい値が返ってくることを確認しましょう

    // .NET5 以降のばあい(ディレクトリのみ)
    using System;
    string ディレクトリ = System.AppContext.BaseDirectory;

     カミュプリィがつくった次のプログラム↓は、↑この方法を使っています

    // プロセスを使う方法
    using System.Diagnostics;
    string パス = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
    // フォームを使う方法(コンソールアプリ可)
    using System.Windows.Forms;
    パス = Application.ExecutablePath;
    // コマンドラインを使う方法
    // デバッグでは *.dll になり、単一ファイルにまとめると *.exe になる
    using System;
    using System.IO;
    c.IO.FileInfo ファイル = new System.IO.FileInfo(System.Environment.CommandLine.Replace("\"", "")); // パラメータがないと仮定
    string パス = System.IO.Path.Combine(ファイル.DirectoryName, ファイル.Name);
    // 与えられた情報を使う方法
    // デバッグでは *.dll になり、単一ファイルにまとめるとブランクになる
    using System.Reflection;
    パス = System.Reflection.Assembly.GetExecutingAssembly().Location;

    Python

     CGIとCronで共通のパスを取得できませんでした。詳しくは次の記事にまとめてあります↓

    Lotus Script

     ノーツドミノではデータベースにプログラムが含まれますので、データベースのパスを取得します

     データベースのファイル名に日本語を使うと、環境によって問題が起こることがあります。また&記号を使うと、検索で問題が起こることがありますので注意しましょう

    バックエンド

     Lotus Script には普遍的な方法と、ユーザーインターフェース(UI)から取得する方法のふたつがあります。ここでは便宜的に、普遍的な方法をバックエンドといい、ユーザーインターフェースをフロントエンドといいます

     ↓次はバックエンドの方法です。フロントエンドでも動きます

    Dim セッション As New NotesSession()
    パス = セッション.CurrentDatabase.FilePath

    フロントエンド

     ↓こちらはユーザーインターフェース(UI)から取得する方法です

    Dim ユーザーインターフェース As New NotesUIWorkspace()
    パス = ユーザーインターフェース.CurrentDatabase.FilePath

    Lotus 式言語

     式言語では、Lotus Script でいうフロントエンドしかありません

    パス = @Subset(@DbName; -1);

     @DbNameは{サーバー; パス}を複数値で戻します。ここから最後のひとつの値を得るために@Subset(; -1)を使います

  • [言語比較]今の日時

    [言語比較]今の日時

     ほとんどの命令はコードを実行しているコンピュータの日時を返します

    Java

    import java.util.Calendar;
    Calendar 日時値 = Calendar.getInstance();

    Java Script

    日時 = New Date();

    Lotus Script

    Dim 日時値 As Variant
    日時値 = Now

    Lotus 式言語

     コードを実行しているコンピュータの日時の他に、サーバーの日時を取得する方法が用意されています

    日時値 = @Now
    Rem {実行環境の日時を取得}
    サーバーの日時値 = @Now([SERVERTIME]:[LOCALTIMEONERROR])
    Rem {サーバーの日時を得られないときはクライアントの日時を取得}

    C++

    #include <chrono>
    time_t 経過秒 = time(nullptr);

     くわしくはこちらの記事に記載しています↓

  • [言語比較]型名を調べる

    [言語比較]型名を調べる

    値の型名を調べます

    C#
    string 型名 = 値.GetType().FullName;
    Visual Basic
    型名 = Microsoft.VisualBasic.TypeName(値) // 戻り値はString
    Lotus Script 言語
    型名 = Typename(値) // 戻り値はString
  • [言語比較]値が範囲に納まるか

    [言語比較]値が範囲に納まるか

    値が範囲内に収まるか否かを確認します
    ユーザー関数名をIsRangeやRangeにすることがあります

    C#

    ↓戻り値がTrueなら範囲に収まる、Falseなら収まらないとしています。型はintやdoubleなどにします

    bool 関数名(型 下限, 型 上限, 型 値)
    {
    	if (下限 > 上限)
    	{
    		型 一時的 = 下限;
    		下限 = 上限;
    		上限 = 一時的;
    	}
    	if (下限 > 値)
    	{
    		return false;
    	}
    	if (上限 < 値)
    	{
    		return false;
    	}
    	return true;
    }
    Lotus Script 言語

    ↓戻り値がTrueなら範囲に収まる、Falseなら収まらないとしています。型はLongやDoubleなどにします

    Function 関数名 (下限 As 型, 上限 As 型, 値 As 型) As Boolean
    	関数名 = False
    	If 値 > 上限 Then
    		Exit Function
    	Elseif 値 < 下限 Then
    		Exit Function
    	End If
    	関数名 = True
    End Function

     また Select を使って書くこともできます↓

    Function 関数名 (下限 As 型, 上限 As 型, 値 As 型) As Boolean
    	関数名 = False
    	Select Case 値
    		Case Is > 上限
    			Exit Function
    		Case Is < 下限
    			Exit Function
    	End Select
    	関数名 = True
    End Function
  • [Java]Spring Initializrで始めるウェブ開発

     Spring Bootのサンプルプログラムをつくってビルドしてみました
     OSはWindowsを使いました

     内容は Spring クイックスタートガイド に沿っています

    準備

     Javaが使えるようになっていることが必要です。JDKのセットアップの詳細はこちら↓に記載しています
    JDK (Java Development Kit) - [Windows]初めてApache Tomcatをセットアップ

     Maven, Tomcat, Spring Boot はインストール不要です

    Spring Initializrでひな形をつくります


     まずは Spring Initializr のサイト↓を開きます
    Spring Initializr

     次のような感じで設定します。
     Spring Boot のバージョンは、特に制約が無ければ括弧がないものの中で大きな数値を選びます。Packaging はウェブ用の『War』を選びます。Java のバージョンはお使いの環境にあわせます
     右側のDependencies で『Spring Web』を追加します

     設定が終わったら『GENERATE』ボタンを押します。ダウンロードが始まります

    ひな形を更新します

     ダウンロードしたひな形を展開します
     これからは、先の『Package name』に設定した値を『パッケージ名』、『Name』に設定した値を『ネーム名』と表記します
     展開したフォルダの中にある src\main\java\パッケージ名\ネーム名Application.java をメモ帳で開きます

    元はこんな感じです↓

    package パッケージ名;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class HelloApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(HelloApplication.class, args);
    	}
    
    }

    追記したものはこんな感じになります↓ 太字の行を追加します

    package パッケージ名;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    @SpringBootApplication
    @RestController
    public class HelloApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(HelloApplication.class, args);
    	}
    
    	@GetMapping("/hello")
    	public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
    		return String.format("Hello %s!", name);
    	}
    
    }

     ファイルを保存して閉じます

    ビルドします

    次の手順でビルドと動作確認ができます

    1. Windowsコマンドプロンプトを開きます
    2. ひな形の中にある pom.xml が置かれたフォルダへ移動します
    3. 『mvnw clean package spring-boot:run』コマンドを実行します
    4. 『… : Started HelloApplication in …』と表示されて画面が止まるまで待ちます(コマンドは終了しません)
    5. ブラウザを開きます
    6. http://localhost:8080/hello へアクセスします
    7. ブラウザに『Hello World!』と表示されます

     Windowsコマンドプロンプトを終わるときはキーボードから「Ctrl + C」キーを押します

     Windowsバッチをつくるとこうなります

    cd /d "%~dp0"
    call mvnw clean package spring-boot:run