program study story

プログラムの勉強 アウトプット

C# 複合書式指定について_String.Format("{0}")

 String.Formatメソッドとは?

第1引数に指定した書式で第2引数以降のオブジェクトを変換して出力表示する。

using System.Windows;
 
namespace ConsoleApp1
{    
     class Program
    {
        static void Main(string[] args)
        {
           string format = String.Format("{0}", 10);
           Console.WriteLine(format);
        }
    }
}
 
書式内では中カッコ(「{ }」)とインデックス番号を使って記述します。
{index[,aligment][:formatString]}
これを複合書式指定と呼ぶ。
※[,aligment][:formatString]は省略可能。
 
indexは、第2引数以降のオブジェクトのインデックス番号を指定します。
 
aligmentについて
書式設定フィールドの幅を指定する。
 
FormatStringについて
書式指定子を指定する。
 
:書式内で文字として{}を使いたい場合
 
using System.Windows;
 
namespace ConsoleApp1
{    
     class Program
    {
        static void Main(string[] args)
        {
           string format = String.Format("{{{0}}}", 10);
           Console.WriteLine(format);
        }
    }
}
 
■ 書式指定子とは?
各書式指定子にフォーマットを変更する。
C#_書式指定子 一覧
-----------------------------------------------------------------------------------------

 指定子  呼び名    説明

 G    General    一般

 N    Number     数値

 F    Fixed-point    固定小数点

 E    Exponential   指数

 P    Percent    パーセント

 D    Decimal     10進数

 X    Hexadecimal   16進数の大文字

 x    Hexadecimal   16進数の小文字

 C    Currency    通貨

-----------------------------------------------------------------------------------------

■ カスタム書式指定子とは

数値を0埋めで出力したり、3桁で区切ることができる。

-----------------------------------------------------------------------------------------

C#_カスタム指定子 一覧
指定子   呼び名         説明
0     ゼロプレースホルダ   0埋めで出力

#     桁プレースホルダ    桁数の指定

,      桁区切り記号      3桁区切り

.      小数点         小数点以下の桁数を指定

%       パーセント       パーセント表示

;     セクション区切り記号   書式を複数指定する場合に区切りで使用

-----------------------------------------------------------------------------------------

using System;

namespace ConsoleApp1

{

     class Program
    {

        static void Main(string args)

        {

                string names = { "Adam", "Bridgette", "Carla", "Daniel",
                                                                 "Ebenezer", "Francine", "George" };
                decimal[] hours = { 40, 6.667m, 40.39m, 82, 40.333m, 80,16.75m };
                                                                                   

                Console.WriteLine("{0,-20} {1,5}\n", "Name", "Hours");
                for (int ctr = 0; ctr < names.Length; ctr++)
                Console.WriteLine("{0,-20} {1,5:N1}", names[ctr], hours[ctr]);

        }

    }

}

 

XAML_簡単構成について_基礎知識

XAMLWindowsアプリケーションを作成するには

少なくとも2つの.xamlファイル(=拡張子が「.xaml」のファイル)が必要。

・ウィンドウを定義した.xamlファイル

・アプリケーションを定義した.xamlファイル

 

例1

・MainWindow.xaml(ウィンドウを定義した.xamlファイル)

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Title="MainWindow" Height="450" Width="800">
Hello World
</Window>

・app.xaml(アプリケーションを定義した.xamlファイル)

<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
StartupUri="win.xaml"
/>

XAMLでは、プロジェクト・ファイル(.projファイル)を記述し、ビルド・ツール (MSBuild.exe)を使って実行ファイルを作成する。

--------------------------------------------------------------------------------------------------

ウィンドウ定義(MainWindow.xaml)とアプリケーション定義(app.xaml)とプロジェクト・ファイル(hello.proj)

ビルド・ツール(MSBuild.exe)

実行ファイル(HelloWorld.exe)

--------------------------------------------------------------------------------------------------

というexeファイル生成の流れ。

 

XML名前空間の基礎知識

XMLは、各要素が属する名前空間をxmlsという特別な属性を使って表す。

例2 --------------------------

<タグ1>
    xmlns="MyNameSpace"
    属性1="……" 属性2="……" >
  <タグ2>
    ……
  </タグ2>
</タグ1>

--------------------------------

例2においては、<タグ1>要素と、その子要素である<タグ2>要素はMyNameSpace名前空間に属していることを表している。

 

例1のMainWindow.xamlでは、

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

……

という名前空間に属していることを指示しています。

 

■ プロジェクト・ファイルの記述

(例) _プロジェクト・ファイル

--------------------------------------------------------------------------------------------------

<Project
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
DefaultTargets="Build" >

<PropertyGroup>
<AssemblyName>HelloWorld</AssemblyName>
<OutputType>MainWindowexe</OutputType>
<OutputPath>.\</OutputPath>
</PropertyGroup>

<ItemGroup>
<ApplicationDefinition Include="app.xaml" />
<Page Include="MainWindow.xaml" />

<Reference Include="System" />
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />

</Project>

--------------------------------------------------------------------------------------------------

<AssemblyName>HelloWorld</AssemblyName>

 ↑のタグは、.exeファイルに使用される名前。

<ApplicationDefinition Include="app.xaml" />

 ↑のタグは、アプリケーションを定義した.xamlファイル。

<Page Include="MainWindow.xaml" />

 ↑のタグは、アプリケーション定義が必要とする.xamlファイル。

 

WPF_C#_Xaml_基礎_DataContextを設定する方法

WPF:DataContextを設定する方法

■プロパティに設定する方法

・csファイルのコンストラクタにおいて、DataContextプロパティを直接設定する方法。

ViewModelを生成するだけでなく、初期設定等を行う場合

XAMLにDataContextを記載しないので、XAML上でDataContextに何が設定されているかあらかじめ知っている必要があることになる。

MainView.xaml.cs

namespace WpfApplication.View
{
    using System.Windows;
 
    public partial class MainView : Window
    {
        public MainView()
        {
            this.InitializeComponent();
            this.DataContext = new WpfApplication.ViewModel.MainViewModel();
        }
    }
}

 

XAMLに記載する方法

XAML上で設定する方法。

初期化時にあれこれはできないが、XAMLとコードがキレイに分離できている。

MainView.xaml

<Window x:Class="WpfApplication.View.MainView"
        xmlns:local="clr-namespace:WpfApplication.ViewModel"
        Title="MainWindow" Height="125" Width="210">
    <Window.DataContext>
        <local:MainViewModel />
    </Window.DataContext>
    <Grid>
    </Grid>
</Window>
 
1.Windowsタグ内にDataContextで使用するクラスのネームスペースを定義する。
<Window
    xmlns:local="clr-namespace:ここにネームスペース"
>
</Window>
2.Windowsタグ内のxmlns:local="clr-namespace:ここにネームスペース"のnamespaceに含まれるクラスはビルドしておく。
 
3.Windows.DataContextタグ内にDataContextのクラスを指定する。
<Window
    xmlns:vm="clr-namespace:ここにネームスペース"
>
    <Window.DataContext>
        <local:ここにクラス名 />
    </Window.DataContext>
</Window>
 

psqlについて_一般的なオプション実行

コマンドプロンプトより、psqlを実行する場合、

オプションが用意されている。

オプションの一覧 

--- 一般的なオプション ---

・-c,-command=コマンド

(SQLまたは内部)単一のコマンドを1つだけ実行して終了

・-d,-dbname=DB名

接続するデータベース名

・-f,--file=FILENAME

ファイルからコマンドを読み込んで実行後、終了する

・-l,--list

私用あのうなデータベース一覧を表示して終了する

・-v,--set=,--variable=名前=値

psql変数'名前'に'値'をセット(例:-v ON_ERROR_STOP=1)

・-V,--version

バージョン情報を表示して終了する

・-X,--no-psqirc

初期化ファイル(~/.psqlrc)を読み込まない

・-1(数字の1),--single-transaction

(対話形式でない場合)

単一のトランザクションとして実行する

・-?,--help[=options]

ヘルプを表示して終了する

・--help=commands

バックスラッシュコマンドの一覧を表示して終了する

・--help=variables

特殊変数の一覧を表示して終了する

 

psqlについて_PostgreSQL_接続_切断

psqlとは

コマンドラインベースでPostgreSQLで作成済みのデータベースに接続したりテーブルから取得したりすることが出来るツール。

 

Windows環境からpsqlを利用するにはコマンドプロンプトから行う。

PostgreSQLへ接続

PostgreSQLへ接続するには、次のように実行する。(PostgreSQLで作成し済みの指定したデータベースに接続する)

 

psql -h ホスト名 -p ポート番号 -u ロール名 -d データベース名

 

ホスト名はPostgreSQLが起動しているホスト名またはIPアドレス

(デフォルトの値はlocalhostとなっている。ローカルホストで動いているPostgreSQLに接続する場合は省略可能。)

 

ポート番号は使用するポート番号

(デフォルトの値はPostgreSQLのインストール時に設定した値[通常は5432]となっているので別のポート番号を使用するとき以外は省略できる)

 

ロール名は-U postgresと指定してください。

PostgreSQLをインストールした直後はスーパーユーザーであるpostgresロールしか作成されていないため。

(ロール名を省略した場合はOSのユーザー名が使用される。PostgreSQLでは、一般的にユーザーと呼ばれるものとグループと呼ばれるものをまとめてロールと呼んでいる。)

 

データベース名には接続するデータベース名を指定します。

(省略した場合はロール名と同じ名前のデータベースに接続する{postgresデータベースは自動で作成されており、postgresロールで接続した場合はpostgresデータベースに接続する。})

 

①すべて指定してPostgresSQLに接続する場合

psql -h localhost -p 5432 -U postgres -d postgres

 

②ホスト名がlocalhostの場合で、ロール名と同じデータベースに接続する場合

psql -U postgres

 

①と②は同じ意味で認識され、実行されたことになる。

・ホスト名がlocalhostであれば、省略ができ、ポート番号も省略できる。

・ロール名と同じデータベースに接続する場合はデータベース名を省略できる。

 

①と②のどちらかで入力後、Enter押下。

postgresのバスワードを入力後、Enter押下。

接続した場合:

postgresデータベースに接続しているので、posgres=#と表示される。

接続中はデータベース名=#と表示される。

 

 

psqlを終了してPostgreSQLから切断するには・・・

コマンドプロンプトにて、データベース名=#が表示時、

「¥q」を入力し、実行

psqlが終了し、PostgreSQLから切断されると

データベース名=#が表示がなくなります。

PostgreSQLについて_基礎

PostgreSQLは、

オープンソースリレーショナルデータベース管理システムのこと(RDBMS)です。

元々の名前は、「Postgres95」であったが、1996年以降はふさわしくないとのことで、「PostgreSQL」と名前を変更し、バージョンを6.0とされている。

PostgreSQLのバージョン番号6.0から9.6までは、「x.y.z」という形式でつけられていた。「x.y」までの数字をメジャーバージョン、そのあとの「z」をマイナーバージョンと呼びます。

バージョン番号10以降は「x.y」という形式で付けられるようになり、

「x」がメジャーバージョン、「y」がマイナーバージョンを表します。

メジャーバージョンが上がった場合、データを新バージョンへ移行する必要がある。

インターネット上で主にメーリングリストを中心といてオープンに開発が行われている。

 ※ メーリングリストとは

複数の人に対して一斉にメールを送ることが可能になる仕組みのこと。