プログラム垂れ流し -2ページ目

[IPhoneApp]画像サイズをフィットさせる

タイトルを実現するメソッドを作ったのでメモ。

現在「基礎から学ぶiPhoneアプリ開発(著:林 晃)」を読みながら勉強してるが、
著書通りにコーディングすると画像フィットの所で、
iPhoneを横にしたときに画像がのびるバグがあったため、
独自にコーディングし直しました。
----------------------------------------------------------------
- (void)drawRect:(CGRect)rect
{
    // Drawing code
    UIImage *theImage = [self image];
    
    if (!theImage)
        return;
    
    //画像サイズ取得
    CGSize imageSize = theImage.size;
    
    //ビューサイズを取得
    CGSize boundsSize = self.bounds.size;
    
    //中央配置
    CGRect dstRect;
    
    if (imageSize.width < boundsSize.width &&
        imageSize.height < boundsSize.height)
    {
        //縮小なし
        dstRect.size = imageSize;
    }
    else
    {
        float rate_w = imageSize.width <= boundsSize.width
            ? imageSize.width / boundsSize.width
            : boundsSize.width / imageSize.width;
        float rate_h = imageSize.height <= boundsSize.height
            ? imageSize.height / boundsSize.height
            : boundsSize.height / imageSize.height;
        
        float rate = rate_w >= rate_h ? rate_h : rate_w;
        
        //フィットさせる
        CGFloat h = round(rate * imageSize.height);
        CGFloat w = round(rate * imageSize.width);
        dstRect.size = CGSizeMake(w, h);
    }
    
    //絵画位置計算
    CGFloat x = round((boundsSize.width - dstRect.size.width) / 2);
    CGFloat y = round((boundsSize.height - dstRect.size.height) / 2);
    dstRect.origin = CGPointMake(x, y);
                      
    //絵画
    [theImage drawInRect:dstRect];
}
----------------------------------------------------------------
改訂2版 基礎から学ぶ iPhoneアプリ開発/林 晃

¥3,360
Amazon.co.jp

[WinBAT X ORACLE]SQLファイル実行バッチ

下記を.batで保存すればSQLドロップで結果をログ出力
win環境(ローカル)でSQLファイルをテストする時とかに
---------------------------------------------------
echo off
rem #### 接続情報 ####
set DBUSER=HOGE_USER
set DBPASS=HOGE_PASS
set SCHEMA=XXX

rem #### 実行SQL ####
set SQLFILE=%1

rem #### 引数 ####
set arg1=ABC
set arg2="''"

rem #### ログ日付取得 ####
set stime=%time::=%
set logtime=%date:/=%%stime:~0,6%

rem #### ログ出力先 ####
set LOGFILE=%SQLFILE%_%logtime%.log

rem #################################################
rem #SQL実行
echo **** SQL START **** %date% %time%>>%LOGFILE%
echo 実行ファイル[%SQLFILE%]>>%LOGFILE%
sqlplus -S %DBUSER%/%DBPASS%@%SCHEMA% @%SQLFILE% %arg1% %arg2% >>%LOGFILE%
set RET=%ERRORLEVEL%
echo 戻り:%RET%>>%LOGFILE%
if %RET% == 0 (
echo **** SQL E N D **** 正常終了 %date% %time%>>%LOGFILE%
) else echo **** SQL E N D **** 異常終了 %date% %time%>>%LOGFILE%

[ORACLE10g X SHELL]圧縮しながらエクスポート(export)

gzファイルを直接吐きだします。
dmp吐きだしてからの圧縮時間を短縮できます。
--------------------------------------------------------
#!/bin/sh
echo "*** dmp_export START *** "`date` >> dmp.log
mknod hogeXXX p
gzip <hogeXXX> HOGE_TBL.dmp.gz &
exp HOGEUSER/HOGEPASS tables=HOGE_TBL file=hogeXXX INDEXES=N DIRECT=Y 2>&1 | tee -a dmp.log
maxrc=$?
if [ $maxrc = 0 ] ; then
echo "exp HOGE_TBL "`date` >> dmp.log
else
echo "exp ERROR HOGE_TBL " >> dmp.log
echo "*** dmp_export END *** "`date` >> dmp.log
rm hogeXXX
return 1
fi
echo "*** dmp_export END *** "`date` >> dmp.log
rm hogeXXX
exit 0
--------------------------------------------------------