haruki のすべての投稿

Ubuntu 20 再インストール

Ubuntu20の起動が不安定になっってきた

電源を入れても、ログイン画面にならない

intramfs

と表示される、コマンドを試してみたが修復ができなかった。

参考
//https://ultrabem-branch3.com/informatics/linux/error_initramfs

再インストールを行ってみようと
USBに外部DVDを接続し、インストールCDを接続し起動

USB起動ができない

Bootを選択画面を出したが
ubuntu(SK….)
のみで、選択ができな

電源と投入時にF2を押すことでBIOS画面を立ち上げる

BOOTをメニューにする

EFI 
ubuntu(SK….)
が選択となっている

Boot Modeを「Legacy Support」
に変更保存終了する

USBに外部DVDを接続し、
再度、

インストールCDを接続し起動
電源と投入時にF2を押すことでBIOS画面を立ち上げる

BOOTをメニューにする

USBを認識したため、
Legacy の項目の
USBを選択し、F6にて、優先順位を上に上げる

Exitにて再起動してみる

インストールCDを接続し起動
無事、DVDからの起動ができた

インストール時に
「グラフィックスと・・・」の項目にチェックを入れて
再度インストールしてみる

参考
//https://kledgeb.blogspot.com/2020/04/ubuntu-2004-25-ubuntu-2004-lts.html

ubuntu 20.04 で日本語入力

日本語でインストールしたが、日本語入力ができなかった

メニューばどは日本語表示になっている

設定(Settings)から地域と言語を選択

入力ソースを
「日本語(Mozc)を上に移動

再起動を行ったところ日本語入力が
できるようになった

ubuntu 20.04 chrome をinstall

ubuntu 20.04に chrome をinstallしてみた

chrome ページへ

https://www.google.co.jp/chrome/?brand=CHBD&gclid=EAIaIQobChMIn6-mhPjM6wIVWqqWCh1NlgsUEAAYASABEgL4MfD_BwE&gclsrc=aw.ds

ダウンロード パッケージを選択してください。
64 ビット .deb(Debian/Ubuntu 用)

64 ビット .deb(Debian/Ubuntu 用)
を、選択して「同意してインストール」

「SaveFile」
ファイルに保存を選択

端末からダウンロードしたページに移動する

fierfoxの場合

ダウンロードかtmpフォルダー

端末(Terminal)を開き(Ctr+Alt+T)

cd ダウンロード

sudo dpkg -i google-chrome-stable_current_amd64.deb

google-chrome
で、起動します

python pipによるパッケージ一覧と一括パッケージインストール

pythonで、pipを使って同じ環境を作る手順

インストール済のパッケージ一覧(画面表示)

pip freeze

インストール済のパッケージ一覧をrequirements.txtに出力

pip freeze > requirements.txt

requirements.txtの内容を一括インストール

pip install -r requirements.txt

つまり、既存の環境で

pip freeze > requirements.txt

で、requirements.txtを作成し
requirements.txtを新しい環境に転送し

pip install -r requirements.txt

により、必要なパッケージをインストールできる

仮想環境を利用する場合には各々操作の前に

source /home/xxx/xxx/env//bin/activate
をしておく必要がある

pip install -r requirements.txt
の途中でエラーが出た場合には、すべて中断されるため、エラーが出たパッケージを確認する
(場合によっては、requirements.txtの中でエラーの出たパッケージ名の先頭に#を付け無効にして実行してみる)

Lazarus StringGrid重複するデータを削除

StringGridで、カラムの中で、重複する情報がある場合削除する処理を作ってみた

DBのSQL文のdistinct(重複レコードの削除)のような処理

処理は、まず指定カラムで、並び替えを行い
同じカラムの内容がつづいたものを、削除する処理とした

並び替えの処理は、Webにある既存の処理を使った

//http://delfusa.main.jp/delfusafloor/archive/www.nifty.ne.jp_forum_fdelphi/faq/00084.htm
ソート処理

Procedure GridSort(Grid : TStringGrid;SortCol : LongInt);
var
   St, St2 : TStringList;
   i : Integer;
begin
     St := TStringList.Create;
     ST.Assign(Grid.Cols[SortCol]);
     For i := 1 To Grid.FixedRows Do
        St.Delete(0);
     For i := Grid.FixedRows To Grid.RowCount - 1 Do
     Begin
                                            St2 := TStringList.Create;
       St2.Assign(Grid.Rows[i]);
       St.Objects[i - Grid.FixedRows] := St2;
     End;
     St.Sort;
     For i := Grid.FixedRows To Grid.RowCount - 1 Do
     Begin
        Grid.Rows[i].Assign(TStringList(St.Objects[i - Grid.FixedRows]));
        TStringList(St.Objects[i - Grid.FixedRows]).Free;
     End;
     St.Free;
end;

Procedure Distinct(Grid : TStringGrid;CutCol : LongInt);
var
   i,j : Integer;
begin
j:=1;
with  Grid  do
begin
 for i:=2 to rowcount-1 do begin
  if Cells[CutCol,j]<>Cells[CutCol,i] then begin
//    Cells[CutCol,j+1]:=Cells[CutCol,i];
// 行単位で複写
    Rows[j+1].Assign(Rows[i]);
    j:=j+1;
  end
 end;
// 重複した行の分に行数を合わせる(不要な行を削除)
 rowcount:=j+1;
end;
end;

// テストデータ作成
procedure TForm1.Button1Click(Sender: TObject);
begin
with  StringGrid1  do
 RowCount:=6;
 Cells[1,1]:='abc';
 Cells[1,2]:='abc-2';
 Cells[1,3]:='abc-1';
 Cells[1,4]:='abc-2';
 Cells[1,5]:='abc-3';
 Cells[2,1]:='1';
 Cells[2,2]:='2';
 Cells[2,3]:='3';
 Cells[2,4]:='4';
 Cells[2,5]:='5';
end;                
end;                

// 動作テスト
procedure TForm1.Button2Click(Sender: TObject);
begin
   GridSort(StringGrid1, 1); //1カラム目でソート
   Distinct(StringGrid1, 1); //1カラム目で重複削除
end;                


UbutuでDropBoxを活用する

UbutuでDropBoxを活用するためにクライアントソフトをインストールしてみました

環境
Ubuntu 20.04.1 LTS (64 ビット)

まず、Webから入り、ログインしておく

https://www.dropbox.com/

クライアントソフトをダウンロードする
Ubuntu 14 以上 64bitを選択

https://www.dropbox.com/install-linux

ターミナルを開きダウンロードしたフォルダに移動する

cd
cd ダウンロード
ls
dropbox_2020.03.04_amd64.deb

インストールを行う

sudo dpkg -i dropbox_2020.03.04_amd64.deb

無事、インストールできました

Lazarus Tabpageを使う

Tabpageを使って見る

機能と用途
タブにより、画面の内容の切り替えができる
プログラムの中で、タブの切り替えができる
画面遷移のように切り替えることができる
プログラムが動いていないプログラム作成の時にも
タブの切り替えができるため
BotuunやStringGridやEditなど数が多くなったときに
画面に設置することで、作成時にも整理ができる

作成(編集)時のタブの追加は
右クリックのタブの追加で行う

プログラムの中でのタブの切り替えは
TabIndexを指定することでできる

TabIndexは一番左が0となる


pageControl1.TabIndex:=1;

タブ部分を非表示にする方法は
TabVisible := False;
とする

すべてのタブを非表示にするのは
for i := 0 to PageControl1.PageCount – 1 do
PageControl1.Pages[i].TabVisible := False;

参考
//https://blog.dreamhive.co.jp/yama/2698.html

プログラム
TabSheet1の上にButton1
TabSheet2の上にButton2
TabSheet3の上にButton3
を設置

procedure TForm1.Button1Click(Sender: TObject);
begin
  pageControl1.TabIndex:=1;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  pageControl1.TabIndex:=2;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  pageControl1.TabIndex:=0;
end;      

Lazarus Indy Smtp 日本語対応 IdMessage1InitializeISO

Lazarus Lazarus Indy Smtp
にて、メール送信時の、Subject(題名)日本語対応

環境
Ubuntu 16
Lazarus 20.0.10

現象
メイル本文、送信者などの日本語対応ができたが
題名(Subject)が日本語にならない
IdMessage1のイベントで(IdMessage1InitializeISO)での
対応を行おうとIdMessage1InitializeISOを作成しようとするとにエラーとなり、作成できなかった

その他の対策(うまく行かなかった)
IdMessage(Indy)以外として
lNet,Synapse,jConvertなど行ったがうまくいかなかった(解決法があるかもしれないが。。。)

参考ページ
//https://wiki.freepascal.org/Networking_libraries
//https://www.migaro.co.jp/contents/support/technical_seminar_search/07th/Session3.pdf

対策
これでいいかわからないが、IdMessage1InitializeISO作成時のエラーをコメントアウトした

修正前(IdGlobal)

  GOffsetFromUTC: TDateTime = 0{$IFDEF HAS_DEPRECATED}{$IFDEF USE_SEMICOLON_BEFORE_DEPRECATED};{$ENDIF} deprecated{$ENDIF};
    {$IFDEF OSX}
  GMachTimeBaseInfo: TTimebaseInfoData;
    {$ENDIF}

修正後

  GOffsetFromUTC: TDateTime = 0
//    {$IFDEF HAS_DEPRECATED}{$IFDEF USE_SEMICOLON_BEFORE_DEPRECATED};{$ENDIF} deprecated{$ENDIF};
  GMachTimeBaseInfo: TTimebaseInfoData;
    {$IFDEF OSX}
  GMachTimeBaseInfo: TTimebaseInfoData;
    {$ENDIF}

修正前(TIdMessage)

IdCharSets,IdGlobalProtocols, IdMessageCoder, IdResourceStringsProtocols,

修正後

//IdCharSets,
IdGlobalProtocols, IdMessageCoder, IdResourceStringsProtocols,

本体
インスタンスはcreateせずに、設置したものを使用した

procedure TForm1.IdMessage1InitializeISO(var VHeaderEncoding: Char;
  var VCharSet: string);
begin
  VHeaderEncoding := 'B';
  VCharSet := 'UTF-8';
end; 
procedure TForm1.Button1Click(Sender: TObject);
begin
  try
  try
    IdSMTP1.HOST:='xxx.com';
    IdSMTP1.PORT:=587;
    IdSMTP1.Username:='xxx@xxx.com';
    IdSMTP1.Password:='xxxxxx';

    IdSMTP1.Connect;

    IdMessage1.ContentType := 'text/plain'; // コンテンツタイプ
    IdMessage1.CharSet := 'UTF-8'; // 文字セット
    IdMessage1.ContentTransferEncoding := 'BASE64';
    IdMessage1.From.Address := 'info@atiinelab.com';
    IdMessage1.Recipients.EMailAddresses := 'xxxxx@xxxx.com';
    IdMessage1.ReplyTo.EMailAddresses:='xxx@xxx.com';
    IdMessage1.Body.Text :='メール本文';
//    IdMessage1.Subject := EncodeHeader(UTF8Encode('アカウントを送付します'), '', 'B', 'UTF-8');
    IdMessage1.Subject                   := '日本語の題名';
    IdMessage1.From.Name := EncodeHeader('送信者名', '', 'B', 'UTF-8');

    //*=== メール送信 ===*/
    IdSMTP1.Send(IdMessage1);
  except
  end;
  finally
    //*=== SMTPサーバの切断 ===*/
    if IdSMTP1 <> nil then
    begin
      IdSMTP1.Disconnect;
    end;
  end;
end;    

can not load default Mysql library(“libmysqlclient.so18” or “libmysqlclient.so”).check your installation

Ubuntu16 にて、Mysqlに接続しようとしたら
can not load default Mysql library(“libmysqlclient.so18” or “libmysqlclient.so”).check your installation
なるエラーがでた

環境
Ubuntu16
Lazarus 2,0,10
他の環境では動いているのに

クライアントソフトをインストール

sudo apt install mysql-client

だめなので、一応サーバを入れてみる

sudo apt install mysql-server

やはりだめ
指摘されている内容を入れてみる

sudo apt-get install libmysqlclient-dev

エラーメッセージが変わった

TMySQL55Connection can not work with the installed MySQL client version:Expected(5.5),got(5.7.31)

Lazarusのコンポーネントを
TMySQL55Connection
から
TMySQL57Connection
へ変更してみた。

無事接続できた。

追記

別の環境で、発生した時

sudo apt-get install libmysqlclient-dev

だけで、対策ができた。

Ubuntu 16.04 ftpクライアントツールをインストール

Ubuntu 16.04 ftpクライアントツールをインストール

filezillaをインストールしてみた

google filezilla ubuntu install

参考

Ubuntu 18.04 に最新版のFileZillaをインストールし設定するまでの手順

最新版のリポジトリを追加

sudo add-apt-repository ppa:sicklylife/filezilla

インストール

sudo apt update
sudo apt install filezilla

実行

filezilla

無事、インストールができました。