【R言語】 RODBCパッケージを使ったSQLServer接続

■RODBCパッケージをインストール

しかし、RGuiのパッケージメニューからインストールしたほうが良い感じ(ヘルプなどがインストールされる)

> install.packages("RODBC")

■インストールされたかを確認する

> library()

※コンソールとは別にウィンドウが開き一覧が表示される

■RODBCを使うことを宣言

> library(RODBC)

ODBCデータソースを使う場合

> db=odbcConnect("SQLServerHOME")
> ds=sqlQuery(db,"select top 100 * from dbo.R_PackageList")
> ds

※データソースを作るにはコントロールパネル→システムとセキュリティ→管理ツールを選択
 ODBCデータソースをダブルクリックしてODBCデータソースアドミニストレーターを表示
 ユーザーDNSで追加してドライバーを選択(SQLServer)して完了を押す
 データソースの作成になるので任意のデータソース名と接続するSQLServerを選択(説明は省略可)

ODBCドライバーで直接接続する場合(既定のデータベース、Windows認証で接続)

> db<- odbcDriverConnect('driver={SQL Server};server=HOME;database=R;trusted_connection=true')
> db
RODBC Connection 3
Details:
  case=nochange
  DRIVER=SQL Server
  SERVER=HOME
  UID=owner
  Trusted_Connection=Yes
  WSID=HOME
  DATABASE=R
> ds=sqlQuery(db,"select top 100 * from dbo.R_PackageList")
> ds

ODBCドライバーで直接接続する場合(インスタンス名付きのデータベース、Windows認証で接続)

>  db<- odbcDriverConnect('driver={SQL Server};server=HOME\\MSSQLSERVER2017;database=KEN_ALL;trusted_connection=true')
> db
RODBC Connection 8
Details:
  case=nochange
  DRIVER=SQL Server
  SERVER=HOME\MSSQLSERVER2017
  UID=owner
  Trusted_Connection=Yes
  WSID=HOME
  DATABASE=KEN_ALL
> ds=sqlQuery(db,"select top 100 * from dbo.KEN_ALL")

ODBCドライバーで直接接続する場合(SQLServer認証)

> db<- odbcDriverConnect('driver={SQL Server};server=HOME\\MSSQLSERVER2017;database=KEN_ALL;UID=sa;PWD=パスワード')
> db
RODBC Connection 9
Details:
  case=nochange
  DRIVER=SQL Server
  SERVER=HOME\MSSQLSERVER2017
  UID=sa
  PWD=******
  WSID=HOME
  DATABASE=KEN_ALL

インスタンス付きサーバー名を指定する場合、\\で接続する必要がある(通常は\一つ)。
 これはR Consoleの"\"を表現する場合には"\\"にしなければならない規定がある
 ファイルパスの接続文字でも同様の事が言える
 C:\temp\test.xlsを指定する場合にはC:/temp/test.xlsとするかC:\\temp\\test.xlsとしなければならない

■その他AccessExcelに接続する場合

odbcConnectAccess(access.file, uid = "", pwd = "", ...)
odbcConnectAccess2007(access.file, uid = "", pwd = "", ...)
odbcConnectExcel(xls.file, readOnly = TRUE, ...)
odbcConnectExcel2007(xls.file, readOnly = TRUE, ...)

■パッケージのアンロード

> detach("package:RODBC")

■パッケージのアンインストール

> remove.pakages("RODBC")

※再インストールするにはRGuiを再起動する必要がある

【Visual Basic】タブレットモードのタッチキーパッド(TabTip)のコントロール

■TabTip起動時

Process.Start("c:\program files\common files\microsoft shared\ink\tabtip.exe")

■TabTipを閉じる時

'宣言

Const WM_SYSCOMMAND As Integer = &H112
Const SC_CLOSE As Integer = &HF060
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As IntPtr) As IntPtr

'閉じたいイベントで

Dim hWnd As IntPtr = FindWindow("IPTip_Main_Window", vbNullString)
If hWnd <> IntPtr.Zero Then PostMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0)

XAMPP WebアプリケーションDrupalインストール時の注意

XAMPPをWindows付属のIISと共存させるにはApacheのhttp.confのListen 80→Listen 8080、ServerName localhost:80→ServerName localhost:8080に変更する。
ApacheのWebサーバーを呼び出すURLはhttp:localhost:8080になる。

開発環境

WebSever統合アプリケーション

〇XAMMP for Windows7.2.3
C:\XAMPP\xampp-control.exe3.2.2.0
https://www.apachefriends.org/jp/index.html
◆Webサーバー
Apache 2.4.34
C:\xampp\apache\bin\httpd.exe2.4.34
◆データベースサーバー
MariaDB(MySQL)10.1.36
C:\xampp\mysql\bin\mysql.exe10.1.36
CGI(Common gatewayInterface)
PHP 7.2.10
C:\xampp\php\php.exe7.2.10
Perl 8.38 2015-11-23
C:\xampp\perl\bin\perl5.16.3.exe
Tomcat 1.0.15.0
C:\xampp\tomcat\bin\tomcat7w.exe1.0.15.0
Apach付属のJSP(JavaServerPages)サーブレット[Java Servlet]
〇Drupal8.6.1
https://www.drupal.org/download
Drupalのインストールには時間がかかる為、既定のPHP実行制限時間では足りないので次の設定を変更する。C:\xampp\php\php.iniのmax_execution_time=30→max_execution_time=300に変更しておく。
ApacheWebサーバーのphpMyAdminにアクセスし空のDrupal用データベースを作成する。
Drupalをインストールしたフォルダにブラウザからアクセスする。インストールが始まるので指示される手順に沿って行う。インストールには30分前後かかる。

ADODB.StreamのCharsetプロパティに設定できる値

ADODB.StreamのCharsetプロパティに設定できる値

○Charsetプロパティ
セットできる値は
HKEY_CLASSES_ROOT\MIME\Database\Charset
のサブキー一覧の中から選択できます

TypeプロパティがadTypeText=2の時に機能します

※Charsetを列挙する方法

①PwerShellを使う

PS>get-rsdrive

でhkclがドライブとして認識されているか確認します

一覧に無ければ
下記コマンドでPowerShell ドライブとして登録します

PS>New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT

登録を削除するには以下のコマンドを使います

PS>Remove-PSDrive -Name HKCR -PSProvider Registry

HKEY_CLASSES_ROOT\MIME\Database\Charsetのフォルダに移動します

PS>cd hkcr:\MIME\Database\Charset

一覧を表示します

PS>ls または PS>dir または PS>gci

パイプを使って一覧をファイルに出力します

PS>ls | C:\test\Charset.txt

②vbs[WSH]を使う

以下のコードを使う

Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_PERFORMANCE_DATA = &H80000004
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_DYN_DATA = &H80000006
Const REG_SZ        = 1
Const REG_EXPAND_SZ = 2
Const REG_BINARY    = 3
Const REG_DWORD     = 4
Const REG_MULTI_SZ  = 7
Dim strComputer,hDefKey,strKeyPath
strComputer = "." ' Use . for current machine
hDefKey = HKEY_CLASSES_ROOT
strKeyPath = "MIME\Database\Charset"
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
oReg.EnumKey hDefKey, strKeyPath, arrSubKeys
Dim oFs,oTs
Set oFs = CreateObject("Scripting.FileSystemObject")
Set oTs = oFs.CreateTextFile(oFs.getParentFolderName(WScript.ScriptFullName) & "\CharsetReg.txt", True)
For Each strSubkey In arrSubKeys
 oTs.WriteLine(strSubkey)
Next
oTs.Close

得られた一覧は次の通り

ANSI_X3.4-1968
ANSI_X3.4-1986
arabic
ascii
ASMO-708
Big5
chinese
CN-GB
cp1256
cp367
cp819
cp852
cp866
csASCII
csbig5
csEUCKR
csEUCPkdFmtJapanese
csGB2312
csISO2022JP
csISO2022KR
csISO58GB231280
csISOLatin1
csISOLatin2
csISOLatin4
csISOLatin5
csISOLatinArabic
csISOLatinCyrillic
csISOLatinGreek
csISOLatinHebrew
csKOI8R
csKSC56011987
csShiftJIS
csUnicode11UTF7
csWindows31J
cyrillic
DOS-720
DOS-862
DOS-874
ECMA-114
ECMA-118
ELOT_928
euc-jp
euc-kr
Extended_UNIX_Code_Packed_Format_for_Japanese
GB2312
GBK
GB_2312-80
greek
greek8
hebrew
hz-gb-2312
IBM367
ibm819
ibm852
ibm866
iso-2022-jp
iso-2022-kr
iso-8859-1
iso-8859-11
iso-8859-2
iso-8859-3
iso-8859-4
iso-8859-5
iso-8859-6
iso-8859-7
iso-8859-8
ISO-8859-8 Visual
iso-8859-8-i
iso-8859-9
iso-ir-100
iso-ir-101
iso-ir-110
iso-ir-111
iso-ir-126
iso-ir-127
iso-ir-138
iso-ir-144
iso-ir-148
iso-ir-149
iso-ir-58
iso-ir-6
ISO646-US
iso8859-1
iso8859-2
ISO_646.irv:1991
iso_8859-1
iso_8859-1:1987
iso_8859-2
iso_8859-2:1987
ISO_8859-4
ISO_8859-4:1988
ISO_8859-5
ISO_8859-5:1988
ISO_8859-6
ISO_8859-6:1987
ISO_8859-7
ISO_8859-7:1987
ISO_8859-8
ISO_8859-8:1988
ISO_8859-9
ISO_8859-9:1989
koi
koi8-r
koi8-ru
korean
KSC5601
KSC_5601
ks_c_5601
ks_c_5601-1987
ks_c_5601-1989
l1
l2
l4
l5
latin1
latin2
latin4
latin5
logical
ms_Kanji
shift-jis
shift_jis
unicode
unicode-1-1-utf-7
unicode-1-1-utf-8
unicode-2-0-utf-8
unicodeFFFE
us
us-ascii
utf-7
utf-8
visual
windows-1250
windows-1251
windows-1252
windows-1253
Windows-1254
windows-1255
windows-1256
windows-1257
windows-1258
windows-874
x-ansi
x-cp1250
x-cp1251
x-euc
x-euc-jp
x-ms-cp932
x-sjis
x-unicode-2-0-utf-7
x-unicode-2-0-utf-8
x-user-defined
x-x-big5
_autodetect
_autodetect_all
_autodetect_kr
_iso-2022-jp$ESC
_iso-2022-jp$SIO

【PowerShell】コマンドの短縮名(エイリアス)逆引きリスト

PowerShellコマンドの短縮名(エイリアス)逆引きリストです

一覧は

PS>Get-Item Alias:

で取得することができます

CSV形式にしておいたのでたの表計算ソフトなどで取り込んで検索したりできます

PowerShellのGridViewに表示する場合は以下のコマンドが便利です

PS>ipcsv csvファイル名 -en oem -header "Alias","Name" | ogv
%,Foreach-Object
?,Where-Object
ac,Add-Content
asnp,Add-PSSnpin
cat,Get-Content
cd,Set-Location
cfs,ConvertFrom-String
chdir,Set-Location
clc,Clear-Content
clear,Clear-Host
clhy,Clear-History
cli,Clear-Item
clp,Clear-ItemProperty
cpp,Copy-ItemProperty
cls,Clear-Host
clv,Clear-Variable
cnsn,Connect-PSSession
compare,Compare-Object
copy,Copy-Item
cp,Copy-Item
cpi,Copy-Item
cpp,Copy-ItemProperty
curl,Invoke-WebRequest
cvpa,Convert-Path
dbp,Disable-PSBreakpoint
del,Remove-Item
diff,Compare-Object
dir,Get-ChildItem
dnsn,Disconnect-PSSession
ebp,Enable-PSBreakpoint
echo,Write-Output
epal,Export-Alias
epcsv,Export-Csv
epsn,Export-PSSession
erase,Remove-Item
etsn,Enter-PSSession
exsn,Exit-PSSession
fc,Format-Custom
fhx,Format-Hex
fl,Format-List
foreach,Foreach-Object
ft,Format-Table
fw,Format-Wide
gal,Get-Alias
gbp,Get-PSBreakpoint
gc,Get-Content
gcb,Get-Clipboard
gci,Get-ChildItem
gcim,Get-CimInstance
gcm,Get-Command
gcs,Get-PSCallStack
gdr,Get-PSDrive
ghy,Get-History
gi,Get-Item
gin,Get-ComputerInfo
gjb,Get-Job
gl,Get-Location
gm,Get-Member
gmo,Get-Module
gp,Get-ItemProperty
gps,Get-Process
gpv,Get-ItemPropertyValue
group,Group-Object
gsn,Get-PSSession
gsnp,Get-PSSnapin
gsv,Get-Service
gtz,Get-TimeZone
gu,Get-Unique
gv,Get-Variable
gwmi,Get-WmiObject
h,Get-History
history,Get-History
icm,Invoke-Command
iex,Invoke-Expression
ihy,Invoke-History
ii,Invoke-Item
ipal,Import-Alias
ipcsv,Import-Csv
ipmo,Import-Module
ipsn,Import-PSSession
irm,Invoke-RestMethod
ise,powershell_ise.exe
iwmi,Invoke-WmiMethod
iwr,Invoke-WebRequest
kill,Stop-Process
lp,Out-Printer
ls,Get-ChildItem
man,help
md,mkdir
measure,Measure-Object
mi,Move-Item
mount,New-PSDrive
move,Move-Item
mp,Move-ItemProperty
mv,Move-Item
nal,New-Alias
ndr,New-PSDrive
nmo,New-Module
npssc,New-PSSessionConfiguretionFile
nsn,New-PSSession
nv,New-Variable
ogv,Out-GridView
oh,Out-Host
popd,Pop-Location
ps,Get-Process
pushd,Push-Location
pwd,Get-Location
r,Invoke-History
rbp,Remove-PSbreakpoint
rcjb,Receive-Job
rcsn,Receive-PSSession
rd,Remove-Item
rdr,Remove-PSDrive
ren,Rename-Item
rjb,Remove-Job
rm,Remove-Item
rmo,Remove-Module
rni,Rename-Item
rnp,Rename-ItemProperty
rp,Rename-ItemProperty
rsn,Remove-PSSession
rsnp,Remove-PSSnapin
rujb,Resume-Job
rv,Remove-Variable
rvpa,Resolve-Path
rwmi,Remove-WmiInstance
sajb,Start-Job
sal,Set-Alias
saps,Start-Process
sasv,Start-Service
sbp,Set-PSBreakpoint
sc,Set-Content
scb,Set-Clipboard
select,Select-Object
set,Set-Variable
shcm,Show-Command
si,Set-Item
sl,Set-Location
sleep,Start-Sleep
sls,Select-String
sort,Sort-Object
sp,Set-ItemProperty
spjb,Stop-Job
spps,Stop-Process
spsv,Stop-Service
start,Start-Process
sujb,Suspend-Job
sv,Set-Variable
stz,Set-TimeZone
swmi,Set-WmiInstance
tee,Tee-Object
trcm,Trace-Command
type,Get-Content
wget,Invoke-WebRequest
where,Where-Object
wjb,Wait-Job
write,Write-Output

【VB.net/C#】OleDbによるcsvファイルをDataGlidViewに表示するプログラム

開発環境 VisualStudio2017
OS Windows10
フレームワーク .NET Framework 4.7.2

DataGridViewをFormにドッキングさせる方法

ドッキング方法はプロパティでDataGridViewを選択すると
デザインビューでDataGridViewがアクティブになり
右上に三角マークが出るのでこれをクリック
「DataGridViewのタスク」のダイアログが出るので
下にある「親コンテナーにドッキングする」をクリック
するとメニューを除くフォームの大きさになる

命名規則とプロパティ設定値

MenuStrip  mnuStrip
OpenFileDialog  ofdCsv  ofdCsv.Filter=Csvファイル|*.csv
ToolStripMenuItem CsvOpenToolStripMenuItem CsvOpenToolStripMenuItem.Text=Csvファイルを開く
DataGridView  dgvCsv
DataSet   oDS
DataTable  oTB
DataGridViewColumn oColumn
OleDb.OleDbConnection oCon
OleDb.OleDbCommand() oCommand
OleDb.OleDbDataAdapter oDataAdapter

VB.netコード

Public Class frmCsv
    Private Sub CsvOpenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CsvOpenToolStripMenuItem.Click
        ofdCsv.ShowDialog()
    End Sub
    Private Sub ofdCsv_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles ofdCsv.FileOk
        Dim sHeader As String
        If MsgBox("ヘッダー(1行目)にタイトルを含みますか?", MsgBoxStyle.YesNo, "ヘッダーの有無指定") = MsgBoxResult.Yes Then
            sHeader = "YES"
        Else
            sHeader = "NO"
        End If
        Dim oCon As New OleDb.OleDbConnection
        Dim oCommand As New OleDb.OleDbCommand()
        Try
            Dim sFileName As String = ofdCsv.SafeFileName
            Dim sFilePath As String = Strings.Left(ofdCsv.FileName, Len(ofdCsv.FileName) - Len(sFileName))
            Dim sConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sFilePath & ";Extended Properties='Text;HDR=" & sHeader & ";FMT=CSVDelimited';"
            Dim oDataSet As New DataSet
            Dim oDataAdapter As New OleDb.OleDbDataAdapter
            Dim oDataTable As DataTable = New DataTable
            oCon.ConnectionString = sConnectionString
            oCommand.Connection = oCon
            oCommand.CommandText = "SELECT * FROM [" & sFileName & "]"
            oDataAdapter.SelectCommand = oCommand
            oDataSet.Clear()
            oDataAdapter.Fill(oDataTable)
            dgvCsv.DataSource = oDataTable
            Dim oColumn As DataGridViewColumn
            For Each oColumn In dgvCsv.Columns
                oColumn.SortMode = DataGridViewColumnSortMode.NotSortable
            Next
        Catch ex As Exception
            Debug.Write(ex.Message)
        Finally
            If Not Command() Is Nothing Then oCommand.Dispose()
            If Not oCon Is Nothing Then oCon.Dispose()
        End Try
    End Sub
End Class

C#コード

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb; //←追加
namespace CsvViewCSharp
{
    public partial class frmCsv : Form
    {
        public frmCsv()
        {
            InitializeComponent();
        }
        private void CsvOpenFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ofdCsv.ShowDialog();
        }
        private void ofdCsv_FileOk(object sender, CancelEventArgs e)
        {
            bool bIsHeader = MessageBox.Show("ヘッダー(1行目)にタイトルを含みますか?", "ヘッダーの有無指定", MessageBoxButtons.YesNo) == DialogResult.Yes;
            string sHeader = bIsHeader ? "YES" : "NO";
            string sFileName = ofdCsv.SafeFileName;
            string sFilePath = ofdCsv.FileName.Substring(0, ofdCsv.FileName.Length - sFileName.Length);
            string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sFilePath + ";Extended Properties='Text;HDR=" + sHeader + ";FMT=CSVDelimited';";
            OleDbConnection oCon = new OleDbConnection(sConnectionString);
            OleDbCommand oCommand = new OleDbCommand("SELECT * FROM [" + sFileName + "]", oCon);
            OleDbDataAdapter oDataAdapter = new OleDbDataAdapter(oCommand);
            DataSet oDataset = new DataSet();
            DataTable oDataTable = new DataTable();
            oDataset.Clear();
            oDataAdapter.Fill(oDataTable);
            dgvCsv.DataSource = oDataTable;
            foreach (DataGridViewColumn oColumn in dgvCsv.Columns)
            {
                oColumn.SortMode = DataGridViewColumnSortMode.NotSortable;
            }
            if (oCommand != null)
            {
                oCommand.Dispose();
            }
            if(oCon != null)
            {
                oCon.Dispose();
            }
        }
    }
}

【Java】ログインデータ管理プログラム【csv】

import java.io.File;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.*;
import java.util.List;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.LinkedList;
class ConsoleLoginEntry{
  public static final String csLoginRootPath = "";
  public static final String csLoginFilePath = "LoginData.csv";
  public static void main(String args[]){
    File ofLogin = new File(csLoginRootPath + csLoginFilePath);
    if (ofLogin.exists()){
      //System.out.println("ファイルは存在します");
    }else{
      System.out.println("ファイルが存在しません");
      System.out.println("ファイルを作成しますか?(Y)");
      try{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String sYesNo = br.readLine();
        if(sYesNo.equals("Y")){
          if(!ofLogin.createNewFile()){
            System.out.println("ファイルを作成できませんでした 終了します");
            return;
          }
        }else{
          System.out.println("終了します");
          return;
        }
      }catch(IOException e){
        System.out.println("Exception :" + e);
      }
    }
    String sID = "";
    String sPassWord = "";
    boolean bId = false;
    //IDの入力検査
    try{
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      System.out.print("IDを入力してください   ⇒  ");
      sID = br.readLine();
      sID = sID.trim();
      if(sID.equals("")){
        System.out.println("IDが入力されませんでした 終了します");
        return;
      }
      if(sID.indexOf(',') > -1){
        System.out.println("IDに','(カンマ)文字を使う事はできません");
        return;
      }
    }catch(IOException e){
      System.out.println("Exception :" + e);
    }
    
    //ログイン情報ファイル
    if (ofLogin.exists()){
      try{
        BufferedReader brFile = new BufferedReader(new FileReader(ofLogin));
        List<String[]> csv = new ArrayList<String[]>();
        String str = brFile.readLine();
        while (str != null) {
          csv.add(str.split(","));
          str = brFile.readLine();
        }
        brFile.close();
        bingo:
        for(String[] line : csv) {
          String s[] = line[0].split(",");          
          if (sID.equals(s[0])){
            bId = true;
            break bingo;
          }
        }
      }catch(IOException e){
        System.out.println("Exception :" + e);
      }
      //パスワードの変更可否
      if (bId){
        System.out.println("そのIDは既に存在します");
        System.out.println("PassWordを変更しますか?(Y) IDを削除しますか?(D)");
        try{
          BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
          String sYesNoDelete = br.readLine();
          //パスワードのみ変更
          if(sYesNoDelete.equals("Y")){
            System.out.println("パスワードを入力して下さい");
            BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
            String sChangePassWord = br2.readLine();
            sChangePassWord = sChangePassWord.trim();
            if(sChangePassWord.equals("")){
              System.out.println("PassWordが入力されませんでした 終了します");
              return;
            }
            if(sChangePassWord.indexOf(',') > -1){
              System.out.println("PassWordに','(カンマ)文字を使う事はできません 終了します");
              return;
            }
            System.out.println("ID=" + sID + " PassWord=" + sChangePassWord);
            //変更前ログインデータを取得
            try{
              BufferedReader brFile = new BufferedReader(new FileReader(ofLogin));
              List<String[]> csv = new ArrayList<String[]>();
              String str = brFile.readLine();
              while (str != null) {
                csv.add(str.split(","));
                str = brFile.readLine();
              }
              brFile.close();
              //変更するログインデータ作成
              LinkedList<String> Newlist = new LinkedList<String>();
              for(String[] line : csv) {
                String s[] = line[0].split(",");          
                if (sID.equals(s[0])){
                  Newlist.add(sID + "," + sChangePassWord);
                }else{
                  Newlist.add(line[0] + "," + line[1]);
                }
              }
              //変更ログインデータファイル作成
              try{
                File Tempfile = new File(csLoginRootPath + "Temp.csv");
                FileWriter filewriter = new FileWriter(Tempfile);
                for (int i = 0; i < Newlist.size(); i++) {
                  filewriter.write(Newlist.get(i) + "\r\n");
                }
                filewriter.close();
                //リネームして正規ログインデータファイルにする
                ofLogin.delete();
                File fNew = new File(csLoginFilePath);
                Tempfile.renameTo(fNew);
              }catch(IOException e){
                System.out.println(e);
              }
              for (int i = 0; i < Newlist.size(); i++) {
                System.out.println(Newlist.get(i));
              }      
              System.out.println("パスワードは変更されました 終了します");
            }catch(IOException e){
              System.out.println("Exception :" + e);
            }
            return;
          //IDごと削除する
          }else if(sYesNoDelete.equals("D")){
            try{
              BufferedReader brFile = new BufferedReader(new FileReader(ofLogin));
              List<String[]> csv = new ArrayList<String[]>();
              String str = brFile.readLine();
              while (str != null) {
                csv.add(str.split(","));
                str = brFile.readLine();
              }
              brFile.close();
              //変更するログインデータ作成
              LinkedList<String> Newlist = new LinkedList<String>();
              for(String[] line : csv) {
                String s[] = line[0].split(",");          
                if (sID.equals(s[0])){
                  //Newlist.add(sID + "," + sChangePassWord);
                }else{
                  Newlist.add(line[0] + "," + line[1]);
                }
              }
              //変更ログインデータファイル作成
              try{
                File Tempfile = new File(csLoginRootPath + "Temp.csv");
                FileWriter filewriter = new FileWriter(Tempfile);
                for (int i = 0; i < Newlist.size(); i++) {
                  filewriter.write(Newlist.get(i) + "\r\n");
                }
                filewriter.close();
                //リネームして正規ログインデータファイルにする
                ofLogin.delete();
                File fNew = new File(csLoginFilePath);
                Tempfile.renameTo(fNew);
              }catch(IOException e){
                System.out.println(e);
              }
              //ログインデータ一覧を表示(確認用)
              /*
              for (int i = 0; i < Newlist.size(); i++) {
                System.out.println(Newlist.get(i));
              }
              */      
              System.out.println("正常に削除されました 終了します");
            }catch(IOException e){
              System.out.println("Exception :" + e);
            }
            return;
          }else{
            System.out.println("終了します");
          }
        }catch(IOException e){
          System.out.println("Exception :" + e);
        }
        return;
      }
    }
    //新規IDのパスワードの入力検査
    try{
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      System.out.print("PassWordを入力してください   ⇒  ");
      sPassWord = br.readLine();
      sPassWord = sPassWord.trim();
      if(sPassWord.equals("")){
        System.out.println("PassWordが入力されませんでした 終了します");
        return;
      }
      if(sPassWord.indexOf(',') > -1){
        System.out.println("PassWordに','(カンマ)文字を使う事はできません 終了します");
        return;
      }
    }catch(IOException e){
      System.out.println("Exception :" + e);
    }
    //新規IDと新規パスワードを登録
    try{
      File file = new File(csLoginRootPath + csLoginFilePath);
      FileWriter filewriter = new FileWriter(file, true);
      filewriter.write(sID + ',' + sPassWord + "\r\n");
      filewriter.close();
      System.out.println("登録は完了しました 終了します");
    }catch(IOException e){
      System.out.println(e);
    }
  }
}