ラベル Dev の投稿を表示しています。 すべての投稿を表示
ラベル Dev の投稿を表示しています。 すべての投稿を表示

2019年7月24日水曜日

DS116 上 -Wall でコンパイル

g++ DC_F.cpp -Wall
最初 20 程度の warning があったが,なんとかクリア.


今日気になった記事
オブジェクト指向プログラミング -- 1兆ドル規模の大失敗
何年も C++ を使用しているが,数年前から気になっていたことが書かれている様に思う.

2017年12月13日水曜日

IGES の仕様

どこまで対応できるか不明ですが,IGES の仕様書を読んでまとめています.


2017年10月31日火曜日

CObArray <--> CObList

CObList の形式のデータを配列として処理したかったので,その相互変換(Sort_ind.hxx 内).

#ifdef  _MFC_VER
//*******************************************************************************
// ObList -> ObArray
// Create : 2017/10/30
//*******************************************************************************
inline bool To_ObArray (/*const*/ CObList& src,CObArray* dstAry)
{
 if (dstAry == NULL)  { return false ;  }
 dstAry->RemoveAll() ;
 {
  POSITION pos = src.GetHeadPosition();
  while (pos != NULL) {
   CObject* pObj = src.GetNext(pos);
   dstAry->Add(pObj) ;
   }
  }
 return true ;
 }

//*******************************************************************************
// ObArray -> ObList
// Create : 2017/10/30
//*******************************************************************************
inline bool To_ObList (const CObArray& src,CObList* dstLst)
{
 if (dstLst == NULL)  { return false ;  }
 dstLst->RemoveAll() ;
 {
  for (INT_PTR index=0 ; index<src.GetSize() ; index++) {
   CObject* pObj = src[index] ;
   dstLst->AddTail(pObj) ;
   }
  }
 return true ;
 }

#endif // _MFC_VER

2017年8月22日火曜日

データ送信 htm , php

html で複数のファイルを指定,php でそれを move_upload_file .

up_data.htm

<form enctype="multipart/form-data" action="up_data.php" method="POST">
    upload file:<br/>
    <input name="file_1" type="file" /><br/>
    <input name="file_2" type="file" /><br/>
    <input type="submit" value="send" />
    </form>

up_data.php

<?php
    if (!file_exists("./data")) {
        mkdir("./data") ;
        }
    foreach ($_FILES as $keys => $values) {
        $file_e = $values ;
        $tempfile =                $file_e['tmp_name'] ;
        $filename = './data/' .  $file_e['name'] ;
        if (is_uploaded_file($tempfile)) {
            move_uploaded_file($tempfile,$filename) ;
            }
        }
    $scan_f = scandir("./data") ;
    foreach ($scan_f as $key => $value) {
        echo $value . "<br/>\r\n" ;
        }
    ?>

http://mish.myds.me/Temp/upload/

2017年6月26日月曜日

IIS+PHP

先日 php のインクルードなどに PHP_OS を利用していたが,
$base = "/.../web" ;
if (PHP_OS == 'WINNT') { $base = "c:/.../web" ; }
else { $base = "/.../web" ; }
include ($base . "/_lib/.../log.php") ;
$_SERVER["DOCUMENT_ROOT"] を見つけたので,
include ($_SERVER["DOCUMENT_ROOT"] . "/_lib/.../log.php") ;

他に,実行ファイルは OS に合った指定が必要な様で,
<?php
include ($_SERVER["DOCUMENT_ROOT"] . "/.../log.php") ;
logging () ;
exec (change_sp("./bin/DrawNow")) ;
// ...
?>
Synology/DrawNow/
IIS 7/DrawNow/

2017年6月2日金曜日

文字列の連結

C++ tstring  strS = str1 + str2 ;
CString strM = str3 + str4 ;
JavaScript var str = str1 + str2 ;
VBScript Dim str As String
str = str1 & str2
PHP $str = $str1 . $str2 ;

2017年5月31日水曜日

php post , get の全ての引数を取得

$_REQUEST , $_GET など.
function  get_request_str () {
  $req ;
  foreach ($_REQUEST as $key => $value) {
   $req = $req . "$key=$value" . " " ;
   }
  return $req ;
  }

2017年5月25日木曜日

tstring::insert

文字列配列の連結
   tstring::insert
     strAry.insert(strAry.end(),src.begin(),src.end()) ;
 
MFC
     strAry.Append(src) ;

2017年5月22日月曜日

Synology php

PHP 5.6 7.0
itl.mydns.jp/I****/phpinfo.php 5.6.307.0.16
itl.mydns.jp/~I***/phpinfo.php 5.6.305.6.30
itl.mydns.jp/~i_**/phpinfo.php  500  500
php -v 5.6.115.6.11
mac php -v 5.5.38
_SERVER["SERVER_SOFTWARE"] 2.2 2.4 Nginx
itl.mydns.jp/I****/phpinfo.php 2.2.312.4.251.11.10
itl.mydns.jp/~I***/phpinfo.php 2.2.322.2.312.2.31
mac httpd -v 2.4.18

mish.myds.me

2017年4月28日金曜日

PHP が動かなくなっている

Synology のパーソナルウェブサイトで PHP が動かなくなった?

先日までは動作していたと思う.
アップデートで設定が変わってしまったのか?

2017/05/10
DSM と Web Station のアップデートがあったので更新したら直った?

2017年4月13日木曜日

Synology で CGI

今度は,CGI.
以前少しやってみたが,500 Internal Server Error となりそのままとなっていた.

cgi の先頭行の指定が怪しいと察しはついていたので検索すると,
通常は「#!/usr/bin/perl」か「#!/usr/local/bin/perl」とのこと.
それぞれのフォルダを見ると,
Iwao@DS115j:/usr/bin$
Iwao@DS115j:/usr/bin$ ls pe*
perl perror
Iwao@DS115j:/usr/bin$
Iwao@DS115j:/usr/bin$ cd /usr/local/bin/
Iwao@DS115j:/usr/local/bin$
Iwao@DS115j:/usr/local/bin$ ls pe*
perl perl5.24.0 perlbug perldoc perlivp perlthanks
Iwao@DS115j:/usr/local/bin$

さらに検索すると,改行の問題とのこと.
「#!/usr/bin/perl --」の様に後ろに "--" を付ければ良いらしい.
または,'LF' にすれば良いみたい.
'CR' として試すと,"--" の有無に関係なく 502 Bad Gateway となってしまう.
また文字コードは,UTF-8 などを使用すると思うが,「BOM なし」の必要がある.

Iwao Dev Synology NAS (開発環境の設定など)

2020/06
次の所に Synology NAS のことをまとめています.
https://jml.mish.work/various/nas/synology-nas.html

次の部分は Synology NAS で動作しています.

2017年4月12日水曜日

Synology PHP データ保存

ログを保存するコードで,
Warning: fopen(/.../Log/20170412.txt):
failed to open stream:
Permission denied in /.../log.php on line 24


どこの設定が影響しているのかが不明だが,
//itl.mydns.jp/3D_Data/ は OK .
//itl.mydns.jp/~i_Tools/ はうまく動作しない.

2017年4月11日火曜日

現在の時刻を文字列に

C++
 time_t tim_v = ::time(NULL) ;
 struct stm = ::localtime(&tim_v) ;
 tstring buff ;
 size_t size = 255 ;
 buff.resize(size+1,0) ;
 ::_tcsftime(&buff[0],size,_T("%Y/%m/%d %H:%M:%S"),&stm) ;
 tstring str = buff.c_str() ;

MFC
 CString str = CTime::GetCurrentTime().Format(_T("%Y/%m/%d %H:%M:%S")) ;

JavaScript
 var time = new Date() ;
 var y_ = time.getFullYear() ;
 var m_ = time.getMonth() + 1 ;
 var d_ = time.getDate() ;
 var hh = time.getHours() ;
 var mm = time.getMinutes() ;
 var ss = time.getSeconds() ;
 var str= (y_+"/"+m_+"/"+d_+" "+hh+":"+mm+":"+ss) ;

PHP
 date_default_timezone_set('Asia/Tokyo') ;
 $str = date("Y/m/d H:i:s") ;

2017年3月8日水曜日

CString , tstring

typedef std::basic_string <TCHAR,std::char_traits<TCHAR>,std::allocator<TCHAR> > tstring ;
CString tstring
Left(count) substr(0,count)
Mid(first) substr(first)
Mid(first,count) substr(first,count)
Right(count)
IsEmpty empty
Empty clear

2017年3月7日火曜日

vector 要素の削除

MSDN vector::erase
MFC の CArray::RemoveAt(index,count=1)
先頭要素の削除
v1.erase( v1.begin( ) );
[1] の削除
v1.erase( v1.begin( )+1 );

2017年3月3日金曜日

コンマ演算子

古いデバッグ用のコードを見ていたら,こんなのがあった.
while (_ftprintf(stderr,_T("%s="),_T("入力してください")),_fgetts(buf,sizeof(buf),stdin) != NULL) { ... }

最近あまりこの様なコードを書くことがなく忘れていた.
while の条件式の括弧の中に複数の文.コンマで区切られている.
for ではインクリメントなどの変化式で使う.

MSDN コンマ演算子: ,
次の様にすると,i には c が代入されるらしい.
i = ( b , c ) ;
括弧がないと b .
i = b , c ;

MSDN コンマ演算子 (,) (JavaScript)
JavaScript でも同じ様な動作なら,今やっている所で使えそう.

while 部分を c++ で書き直し.
// while (std::terr << _T("入力してください=") , std::getline(std::tin,buf))
while (std::terr << _T("入力してください=") , std::tin.getline(&buf[0],buf.size()))
上の方法ではうまく取れなかった.

2017年3月2日木曜日

IIS で exe

ここを参考にさせてもらって,exe で html 出力.
Win XP 環境では,ここにある通りの手順で動作した.

Win 7 では,うまく動作しない.
exe は起動しているが,html がうまく返らない.