約 6,034,618 件
https://w.atwiki.jp/sampleisbest/pages/189.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Win32 プロジェクト プロジェクト名 FontTest アプリケーションの種類 Windows アプリケーション 追加のオプション 空のプロジェクト 文字セット Unicode tmExternalLeading 行間最小の高さ tmInternalLeading 発音符の高さ(tmHeightとtmAscentに含まれる) tmHeight フォントの高さ tmAscent + tmDescent tmAscent gjpqyで下にはみ出ない、発音符を含む高さ tmDescent gjpqyで下にはみ出る高さ フォント作成時に指定するフォントの高さ 正 = 発音符を含む高さ(tmHeight) 負 = 発音符を含まない高さ(tmHeight - tmInternalLeading) 推奨される最小の行の高さ = tmExternalLeading + tmHeight FACE_NAME=Arial FONT_HEIGHT=100 tmHeight=100 tmAscent=80 tmDescent=20 tmInternalLeading=11 tmExternalLeading=3 FACE_NAME=Arial FONT_HEIGHT=-100 tmHeight=112 tmAscent=90 tmDescent=22 tmInternalLeading=12 tmExternalLeading=3 FACE_NAME=MS 明朝 FONT_HEIGHT=100 tmHeight=100 tmAscent=86 tmDescent=14 tmInternalLeading=0 tmExternalLeading=0 FACE_NAME=MS 明朝 FONT_HEIGHT=-100 tmHeight=100 tmAscent=86 tmDescent=14 tmInternalLeading=0 tmExternalLeading=0 FACE_NAME=メイリオ FONT_HEIGHT=100 tmHeight=100 tmAscent=71 tmDescent=29 tmInternalLeading=33 tmExternalLeading=0 FACE_NAME=メイリオ FONT_HEIGHT=-100 tmHeight=150 tmAscent=106 tmDescent=44 tmInternalLeading=50 tmExternalLeading=0 FontTest.cpp // Unicode #include Windows.h #include stdio.h #define APP_NAME TEXT("FontTest") //#define FACE_NAME TEXT("Arial") //#define FACE_NAME TEXT("MS 明朝") #define FACE_NAME TEXT("メイリオ") //#define STRING TEXT("Wgjpqy") #define STRING TEXT("Wgjpqy漢字") #define FONT_HEIGHT -100 // 関数プロトタイプ宣言 void Trace(LPCTSTR format, ...); LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); void OnPaint(HWND hWnd); void OnCreate(void); // 外部変数構造体 static struct { HFONT hFont; int nY[3]; } g; //============================================================================== int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow) { WNDCLASSEX wcx; HWND hWnd; MSG msg; // ウィンドウクラスの登録 ZeroMemory( wcx, sizeof wcx); wcx.cbSize= sizeof wcx; wcx.style= CS_HREDRAW | CS_VREDRAW; wcx.lpfnWndProc= WndProc; wcx.hInstance= hInstance; wcx.hCursor= LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW)); wcx.hbrBackground= (HBRUSH)(COLOR_WINDOW + 1); wcx.lpszClassName= APP_NAME; if (RegisterClassEx( wcx) == 0) { return 0; } // ウィンドウの作成 hWnd = CreateWindow( APP_NAME, APP_NAME, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (hWnd == NULL) { return 0; } ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); // メッセージループ while (GetMessage( msg, NULL, 0, 0)) { TranslateMessage( msg); DispatchMessage( msg); } return msg.wParam; } //------------------------------------------------------------------------------ void Trace(LPCTSTR format, ...) { va_list arg_ptr; TCHAR buffer[256]; int size; va_start(arg_ptr, format); size = _vsnwprintf_s(buffer, _TRUNCATE, format, arg_ptr); va_end(arg_ptr); OutputDebugString(buffer); if (size 0) { OutputDebugString(TEXT("...\n")); } } //------------------------------------------------------------------------------ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_PAINT OnPaint(hWnd); return 0; case WM_CREATE OnCreate(); return 0; case WM_DESTROY DeleteObject(g.hFont); PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, uMsg, wParam, lParam); } //------------------------------------------------------------------------------ void OnPaint(HWND hWnd) { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, ps); RECT rc; GetClientRect(hWnd, rc); SetBkMode(hdc, TRANSPARENT); // 補助線 HPEN hPen = CreatePen(PS_SOLID, 0, RGB(255,0,0)); HGDIOBJ hPenOld = SelectObject(hdc, hPen); for (int n = 0; n 3; n++) { MoveToEx(hdc, 0, g.nY[n], NULL); LineTo(hdc, rc.right, g.nY[n]); } SelectObject(hdc, hPenOld); DeleteObject(hPen); // テスト文字列 HGDIOBJ hFontOld = SelectObject(hdc, g.hFont); TextOut(hdc, 0, 0, STRING, wcslen(STRING)); SelectObject(hdc, hFontOld); EndPaint(hWnd, ps); } //------------------------------------------------------------------------------ void OnCreate(void) { // フォントの作成 LOGFONT lf; ZeroMemory( lf, sizeof lf); lf.lfHeight = FONT_HEIGHT; lf.lfCharSet = DEFAULT_CHARSET; wcscpy_s(lf.lfFaceName, FACE_NAME); g.hFont = CreateFontIndirect( lf); // フォント情報の取得 HDC hdc = GetDC(NULL); HGDIOBJ hFontOld = SelectObject(hdc, g.hFont); TEXTMETRIC tm; GetTextMetrics(hdc, tm); SelectObject(hdc, hFontOld); ReleaseDC(NULL, hdc); Trace(TEXT("FACE_NAME=%s\n"), FACE_NAME); Trace(TEXT("FONT_HEIGHT=%d\n"), FONT_HEIGHT); Trace(TEXT("tmHeight=%d\n"), tm.tmHeight); Trace(TEXT("tmAscent=%d\n"), tm.tmAscent); Trace(TEXT("tmDescent=%d\n"), tm.tmDescent); Trace(TEXT("tmInternalLeading=%d\n"), tm.tmInternalLeading); Trace(TEXT("tmExternalLeading=%d\n"), tm.tmExternalLeading); g.nY[0] = tm.tmInternalLeading; g.nY[1] = tm.tmHeight - tm.tmDescent; g.nY[2] = tm.tmHeight; }
https://w.atwiki.jp/touhoukashi/pages/5988.html
【登録タグ N millie 天空の花の都 曲 東方PARTYBOX 博麗神社ver. 発熱巫女~ず】 【注意】 現在、このページはJavaScriptの利用が一時制限されています。この表示状態ではトラック情報が正しく表示されません。 この問題は、以下のいずれかが原因となっています。 ページがAMP表示となっている ウィキ内検索からページを表示している これを解決するには、こちらをクリックし、ページを通常表示にしてください。 /** General styling **/ @font-face { font-family Noto Sans JP ; font-display swap; font-style normal; font-weight 350; src url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/10/NotoSansCJKjp-DemiLight.woff2) format( woff2 ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/9/NotoSansCJKjp-DemiLight.woff) format( woff ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/8/NotoSansCJKjp-DemiLight.ttf) format( truetype ); } @font-face { font-family Noto Sans JP ; font-display swap; font-style normal; font-weight bold; src url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/13/NotoSansCJKjp-Medium.woff2) format( woff2 ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/12/NotoSansCJKjp-Medium.woff) format( woff ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/11/NotoSansCJKjp-Medium.ttf) format( truetype ); } rt { font-family Arial, Verdana, Helvetica, sans-serif; } /** Main table styling **/ #trackinfo, #lyrics { font-family Noto Sans JP , sans-serif; font-weight 350; } .track_number { font-family Rockwell; font-weight bold; } .track_number after { content . ; } #track_args, .amp_text { display none; } #trackinfo { position relative; float right; margin 0 0 1em 1em; padding 0.3em; width 320px; border-collapse separate; border-radius 5px; border-spacing 0; background-color #F9F9F9; font-size 90%; line-height 1.4em; } #trackinfo th { white-space nowrap; } #trackinfo th, #trackinfo td { border none !important; } #trackinfo thead th { background-color #D8D8D8; box-shadow 0 -3px #F9F9F9 inset; padding 4px 2.5em 7px; white-space normal; font-size 120%; text-align center; } .trackrow { background-color #F0F0F0; box-shadow 0 2px #F9F9F9 inset, 0 -2px #F9F9F9 inset; } #trackinfo td ul { margin 0; padding 0; list-style none; } #trackinfo li { line-height 16px; } #trackinfo li nth-of-type(n+2) { margin-top 6px; } #trackinfo dl { margin 0; } #trackinfo dt { font-size small; font-weight bold; } #trackinfo dd { margin-left 1.2em; } #trackinfo dd + dt { margin-top .5em; } #trackinfo_help { position absolute; top 3px; right 8px; font-size 80%; } /** Media styling **/ #trackinfo .media th { background-color #D8D8D8; padding 4px 0; font-size 95%; text-align center; } .media td { padding 0 2px; } .media iframe nth-of-type(n+2) { margin-top 0.3em; } .youtube + .nicovideo, .youtube + .soundcloud, .nicovideo + .soundcloud { margin-top 0.75em; } .media_section { display flex; align-items center; text-align center; } .media_section before, .media_section after { display block; flex-grow 1; content ; height 1px; } .media_section before { margin-right 0.5em; background linear-gradient(-90deg, #888, transparent); } .media_section after { margin-left 0.5em; background linear-gradient(90deg, #888, transparent); } .media_notice { color firebrick; font-size 77.5%; } /** Around track styling **/ .next-track { float right; } /** Infomation styling **/ #trackinfo .info_header th { padding .3em .5em; background-color #D8D8D8; font-size 95%; } #trackinfo .infomation_show_btn_wrapper { float right; font-size 12px; user-select none; } #trackinfo .infomation_show_btn { cursor pointer; } #trackinfo .info_content td { padding 0 0 0 5px; height 0; transition .3s; } #trackinfo .info_content ul { padding 0; margin 0; max-height 0; list-style initial; transition .3s; } #trackinfo .info_content li { opacity 0; visibility hidden; margin 0 0 0 1.5em; transition .3s, opacity .2s; } #trackinfo .info_content.infomation_show td { padding 5px; height 100%; } #trackinfo .info_content.infomation_show ul { padding 5px 0; max-height 50em; } #trackinfo .info_content.infomation_show li { opacity 1; visibility visible; } #trackinfo .info_content.infomation_show li nth-of-type(n+2) { margin-top 10px; } /** Lyrics styling **/ #lyrics { font-size 1.06em; line-height 1.6em; } .not_in_card, .inaudible { display inline; position relative; } .not_in_card { border-bottom dashed 1px #D0D0D0; } .tooltip { display flex; visibility hidden; position absolute; top -42.5px; left 0; width 275px; min-height 20px; max-height 100px; padding 10px; border-radius 5px; background-color #555; align-items center; color #FFF; font-size 85%; line-height 20px; text-align center; white-space nowrap; opacity 0; transition 0.7s; -webkit-user-select none; -moz-user-select none; -ms-user-select none; user-select none; } .inaudible .tooltip { top -68.5px; } span hover + .tooltip { visibility visible; top -47.5px; opacity 0.8; transition 0.3s; } .inaudible span hover + .tooltip { top -73.5px; } .not_in_card span.hide { top -42.5px; opacity 0; transition 0.7s; } .inaudible .img { display inline-block; width 3.45em; height 1.25em; margin-right 4px; margin-bottom -3.5px; margin-left 4px; background-image url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2971/7/Inaudible.png); background-size contain; background-repeat no-repeat; } .not_in_card after, .inaudible .img after { content ; visibility hidden; position absolute; top -8.5px; left 42.5%; border-width 5px; border-style solid; border-color #555 transparent transparent transparent; opacity 0; transition 0.7s; } .not_in_card hover after, .inaudible .img hover after { content ; visibility visible; top -13.5px; left 42.5%; opacity 0.8; transition 0.3s; } .not_in_card after { top -2.5px; left 50%; } .not_in_card hover after { top -7.5px; left 50%; } .not_in_card.hide after { visibility hidden; top -2.5px; opacity 0; transition 0.7s; } /** For mobile device styling **/ .uk-overflow-container { display inline; } #trackinfo.mobile { display table; float none; width 100%; margin auto; margin-bottom 1em; } #trackinfo.mobile th { text-transform none; } #trackinfo.mobile tbody tr not(.media) th { text-align left; background-color unset; } #trackinfo.mobile td { white-space normal; } document.addEventListener( DOMContentLoaded , function() { use strict ; const headers = { title アルバム別曲名 , album アルバム , circle サークル , vocal Vocal , lyric Lyric , chorus Chorus , narrator Narration , rap Rap , voice Voice , whistle Whistle (口笛) , translate Translation (翻訳) , arrange Arrange , artist Artist , bass Bass , cajon Cajon (カホン) , drum Drum , guitar Guitar , keyboard Keyboard , mc MC , mix Mix , piano Piano , sax Sax , strings Strings , synthesizer Synthesizer , trumpet Trumpet , violin Violin , original 原曲 , image_song イメージ曲 }; const rPagename = /(?=^|.*
https://w.atwiki.jp/pqjp/pages/193.html
?xml version="1.0"? TextLibrary Text tag="[Conv_Q0Q3b_NAME1]" Darkhunter /Text Text tag="[Conv_Q0Q3b_0000]" I have taken the Sorcerer prisoner. /Text Text tag="[Conv_Q0Q3b_0001]" I have taken the Sorcerer prisoner. /Text Text tag="[Conv_Q0Q3b_0002]" I have taken the Sorcerer prisoner. /Text Text tag="[Conv_Q0Q3b_0003]" I have taken the Sorcerer prisoner. /Text Text tag="[Conv_Q0Q3b_0004]" Good. So, now we head north? /Text Text tag="[Conv_Q0Q3b_0005]" Good. So, now we head north? /Text Text tag="[Conv_Q0Q3b_0006]" Good. So, now we head north? /Text Text tag="[Conv_Q0Q3b_0007]" Good. So, now we head north? /Text Text tag="[Conv_Q0Q3b_0008]" The deal was that he be brought to justice. That has not happened yet. /Text Text tag="[Conv_Q0Q3b_0009]" The deal was that he be brought to justice. That has not happened yet. /Text Text tag="[Conv_Q0Q3b_0010]" The deal was that he be brought to justice. That has not happened yet. /Text Text tag="[Conv_Q0Q3b_0011]" The deal was that he be brought to justice. That has not happened yet. /Text Text tag="[Conv_Q0Q3b_0012]" But... /Text Text tag="[Conv_Q0Q3b_0013]" But... /Text Text tag="[Conv_Q0Q3b_0014]" But... /Text Text tag="[Conv_Q0Q3b_0015]" But... /Text Text tag="[Conv_Q0Q3b_0016]" Come. Follow me. We will talk more when we reach Gallia. /Text Text tag="[Conv_Q0Q3b_0017]" Come. Follow me. We will talk more when we reach Gallia. /Text Text tag="[Conv_Q0Q3b_0018]" Come. Follow me. We will talk more when we reach Gallia. /Text Text tag="[Conv_Q0Q3b_0019]" Come. Follow me. We will talk more when we reach Gallia. /Text /TextLibrary
https://w.atwiki.jp/toram_international/pages/87.html
Home→イベント/Event→Extreme Empress 急げ!新ドメインは早いもの勝ち! Extreme Empress Original Information from Cloverlight(JP player). 日本の方は原文『クローバーライトのトーラムブログ( ノ^ω^)ノ』へ。 Original Info Chapter 1(Japanese) Original Info Chapter 2(Japanese) She has 5 forms. Her ATK increases by break parts. So, we should break parts in 5th form. Cassy sometimes uses Knock Back Circle Saw We can beat Cassy for 10 times attack. We should beat Cassy if you have chance. Form No. Skills Plan 【1st from】 Stun, Tumble × ・Radial prong waves(radial blue linear) Streak attack (fire prong waves and water prong waves) from coner of stage. We should take distance and avoid this attack. ・Prong magic attack(blue wide linear) Target for who taking aggro soon after Radial prong waves. We should take distance and avoid this attack. ・Tumble beam(red wide linear) Target for who taking aggro. You get Tumble if you give this attack. ・Knock Back beam(red wide linear) Target for who taking aggro. 100% fall down from the stage if you take this attack. She sometimes stops a while at center of stage. We should aviod all blue linear and red AOE attack. 【2nd form】Stun, Tumble × Targeting streak attack for who taking aggro. Plan1 Tank should use aggro skills if she changes target except tank. Tank should t take aggro too much. Cancel red AOE attack by changing target from attackers. Plan2 Tank keeps taking aggro and running like large circle. 【3rd form】 Flinch, Stun × Tumble ○ ・Needles AOE on all quarters and center of the stage. ・3 streak magic(blue AOE) Attack for who hasn t aggro and furthest from her. She moves on needles AOE as coner → center → corner (another side). She uses 3 streak magic after moving in this pattern. After she moves, nearest player should use Tumble skills and cancel the 3 streak magic. We shouldn t break in this form. 【4th form】 Flinch, Tumble, Stun ○ ・Fear Streak Magic(red wide linear) She shoots Streak magic to who taking aggro. We get Fear if we take this magic attack. ・4 Element Streak Magic(red circle AOE 4 times) She shoots magic streak attack to who taking aggro. She chases who taking aggro in this streak attacks. Fire→Water→Wind→Earth Tank should keep aggro. And run from red AOE. Cancel Fear Streak Magic by Flinch or Tumble or Stun. 【5th form】 Flinch, Tumble ○ Random attack pattern from 1-4 forms. We should break in this form. Copyright(c) ASOBIMO,Inc. All rights reserved.
https://w.atwiki.jp/sampleisbest/pages/168.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 空の CLR プロジェクト プロジェクト名 ClrD3D 参考 本当の3D ClrD3D.cpp /* プロジェクトへの参照の追加(参照タブ) C \WINDOWS\Microsoft.NET\DirectX for Managed Code\1.0.2902.0 Microsoft.DirectX.dll Microsoft.DirectX.Direct3D.dll Microsoft.DirectX.Direct3DX.dll */ #pragma comment(linker, "/subsystem windows /entry main") // アセンブリ #using System.dll #using System.Drawing.dll #using System.Windows.Forms.dll // 名前空間 using namespace System; using namespace System Drawing; using namespace System Threading; using namespace System Windows Forms; using namespace Microsoft DirectX; using namespace Microsoft DirectX Direct3D; #define RGB(r,g,b) (((r) 16) | ((g) 8) | (b)) ref class MainForm Form { private Device^ dev; PresentParameters^ pp; VertexBuffer^ vb; Direct3D Font^ font; int nSec; int nFps; int nFrame; public MainForm() { MinimumSize = Drawing Size(160, 120); MaximizeBox = false; ClientSize = Drawing Size(640, 480); Text = "ClrD3D"; } bool DXInitialize() { try { pp = gcnew PresentParameters; pp- Windowed = true; pp- SwapEffect = SwapEffect Discard; dev = gcnew Device(0, DeviceType Hardware, this, CreateFlags HardwareVertexProcessing, pp); CreateVertex(); CreateFont(); return true; } catch (Exception^) { return false; } } void Render() { if (dev == nullptr) return; if (WindowState == FormWindowState Minimized) return; nFrame++; if (nSec != DateTime Now.Second) { nSec = DateTime Now.Second; nFps = nFrame; nFrame = 0; } // カメラの設定 dev- Transform- View = Matrix LookAtLH( Vector3(0.0f, 0.0f, -5.0f), Vector3(0.0f, 0.0f, 0.0f), Vector3(0.0f, 1.0f, 0.0f)); dev- Transform- Projection = Matrix PerspectiveFovLH((float)Math PI / 4, (float)ClientSize.Width / ClientSize.Height, 3.0f, 15.0f); dev- RenderState- Lighting = false; //dev- Transform- World = Matrix Scaling(2.0f, 0.5f, 1.0f);// 拡大・縮小 //dev- Transform- World = Matrix Translation(2, -2, 5);// 平行移動 //dev- Transform- World = Matrix RotationX(Environment TickCount / 300.0f); dev- Transform- World = Matrix Scaling(2, 1, 1) * Matrix RotationY(Environment TickCount / 300.0f) * Matrix RotationX(Environment TickCount / 400.0f) * Matrix Translation(0, 0, 1); dev- RenderState- CullMode = Cull None; dev- Clear(ClearFlags Target, Color Black, 1.0f, 0); dev- BeginScene(); dev- SetStreamSource(0, vb, 0); dev- VertexFormat = CustomVertex PositionColored Format; dev- DrawPrimitives(PrimitiveType TriangleList, 0, 1); font- DrawText(nullptr, "fps=" + nFps, 0, 0, Color White); dev- EndScene(); try { dev- Present(); } catch (DeviceLostException^) { ResetDevice(); } } private void CreateVertex() { vb = gcnew VertexBuffer(CustomVertex PositionColored typeid, 3, dev, (Usage)0, CustomVertex PositionColored Format, Pool Managed); GraphicsStream^ gs = vb- Lock(0, 0, (LockFlags)0); // 頂点データ array CustomVertex PositionColored ^ v = gcnew array CustomVertex PositionColored (3); v[0].Position = Vector3(0.0f, 2.0f, 0.0f); v[0].Color = Color LightPink.ToArgb(); v[1].Position = Vector3(1.0f, 0.0f, 0.0f); v[1].Color = Color Aqua.ToArgb(); v[2].Position = Vector3(-1.0f, 0.0f, 0.0f); v[2].Color = Color Brown.ToArgb(); gs- Write(v); vb- Unlock(); } void CreateFont() { FontDescription fd; fd.Height = 20; fd.FaceName = "MS ゴシック"; font = gcnew Direct3D Font(dev, fd); } void ResetDevice() { int hResult; if (!dev- CheckCooperativeLevel(hResult)) { switch (hResult) { case ResultCode DeviceLost Thread Sleep(10); break; case ResultCode DeviceNotReset dev- Reset(pp); break; } } } }; int main() { MainForm^ form = gcnew MainForm; if (!form- DXInitialize()) { MessageBox Show("Direct3Dの初期化に失敗しました。", "ClrD3D"); return 0; } form- Show(); while (form- Created) { form- Render(); Application DoEvents(); } return 0; }
https://w.atwiki.jp/pathofexile12/pages/686.html
WinterheartはGold Amuletのユニーク 入手方法 詳説・特徴 関連リンク Winterheart Gold Amulet ステータス要求値:LEVEL42 (12-20)% increased Rarity of Items foundアイテムレアリティが(12-20)%増加 +(20-30) to DexterityDexterityに+(20-30) +(50-70) to maximum Life最大Life+(50-70) +75% to Cold ResistanceCold耐性+75% Cannot be ChilledChillにならなくなる Regenerate 20% of Life per second while FrozenFreezeしている間、20%のLifeリジェネを得る Those who dwell in the deep freezeenjoy a special kind of madness. 入手方法 カード等のドロップ以外の入手方法 アイテム 必要数 備考 Arrogance of the Vaal 8 Jack in the Box 4 詳説・特徴 関連リンク 英wiki https //pathofexile.gamepedia.com/Winterheart Unique Amulets 一覧
https://w.atwiki.jp/babais/pages/45.html
カスタムレベルパック Silver Meadowの攻略 MAP LONELY TEXT RIFT BABADOKU LONELY TEXT-A CONTINENTAL DRIFT LONELY TEXT-B CRAMPED LONELY TEXT-C SEPARATOR LONELY TEXT-D TALL GRASS LONELY TEXT-E MUTATIONS LONELY TEXT-F HOLD IT RIGHT THERE LONELY TEXT-G WHAT IS LOVE? LONELY TEXT-H ASSISTANCE LONELY TEXT-I LIVELY FIRE 左上マスから右にA1,A2,…、下にA1,B1,…として解説する。 LONELY TEXT-A CONTINENTAL DRIFT LEVEL IS TEXT ヒント +... LONELY TEXT IS YOUの文字列が1マス下かつ1マス右に移動してくれれば簡単に作れる 解答 +... RIGHTの左隣でLEVEL IS SHIFTを作り、次のターンにLEVEL IS RIGHT 再度LEVEL IS SHIFTを1ターンだけ作り、LEVEL IS TEXT IS YOUを作る LONELY TEXT-B CRAMPED 解答 +... TEXT IS PULLを崩し、STOPを引っ張る STOPをISの上に配置し、PULLを引っ張る STOPとISによるつっかえを利用してPULLを右上の窪みに入れる LONELY TEXT-C SEPARATOR 解答 +... NOT LONELY TEXT IS YOUの後に←→↑←と移動してNOT TEXT IS YOUにする LONELY TEXT-D TALL GRASS ヒント +... TEXT IS SWAPは確定 WINを下に、LONELYを左に移動させてから↓3でTEXT IS SWAPが外れる TEXT IS YOUとWINの横位置を後1マス引き離すには… ヒント2 +... もしTEXT IS SWAPが外れた時にGRASS IS TEXTが完成すれば、WINの横位置をずらすことができる 解答 +... TEXT IS SWAPを作る GRASSを左下に移動させる WINを下に、LONELYを左にスワップさせる ↓3、←2、→1、↑3、→1 別解 +... GRASS IS STOPは動かさずに、WINを下に、LONELYを左にスワップさせる ↓3、→1、↑3、→1、↓3、→1、↑2、←2、→1 LONELY TEXT-E MUTATIONS ヒント +... ISとROCKを重ねる 旗を岩に変える ROCK IS YOUかつROCK IS WIN 解答 +... ↓1、↑1、→2、↑1、↓1、←1、→1、↓1 LONELY TEXT-F HOLD IT RIGHT THERE ヒント +... A3にIS、C4にcogとPUSH、E5にIS、左端で縦向きにCOG IS WINが作れればクリア可能 ヒント2 +... 左上で縦向きにCOG IS WINを作る その後COG IS STOPを利用して位置調整を行う 解答 +... →2、↓1、←2、↑1、→3、←2、↑1、→1、↓1、←3、→1、↑1、→2、↓3、↑1、←3、→2 LONELY TEXT-G WHAT IS LOVE? ヒント +... 最終目標はBABA IS YOUかつBABA IS WIN 解答 +... BABA IS TEXTでBABAとWINを重ねる BABA/WINをC5に配置する BABAの右側と下側にISが来るよう調整 LOVE IS BABA BABA IS YOUかつBABA IS WIN BABA IS BABAを作っている間はBABA IS TEXTを作っても問題ないことに注意 LONELY TEXT-H ASSISTANCE ヒント +... LONELYを外す 解答 +... ↑2、←1、↓1、↑1、←1、↑2、→1、↓1、←1、↑1、←1、wait1、↓1、wait1、↑2、→2 LONELY TEXT-I LIVELY FIRE ヒント +... 闇雲に動かしてクリアできるステージではない ヒント2 +... FIRE IS YOUを作る 解答 +... →2、↓2、←2、↑2、↓2、→1、↑1、←2、↑2、→1、←2、↑1、→2、←1
https://w.atwiki.jp/my_ark/pages/64.html
グラフ 一筆書き 数学 草稿 (草稿) (2, 2)の場合 8通り □□ □□ 12 14 21 41 34 32 34 23 43 43 23 34 32 21 41 21 14 12 (1, 1)から (+1, 0), (0, -1), (-1, 0) 計 (0, -1) (0, -1), (+1, 0), (0, +1) 計 (+1, 0) (1, 2)から (-1, 0), (0, -1), (+1, 0) 計 (0, -1) (0, -1), (-1, 0), (0, +1) 計 (-1, 0) (1, 2)から (0, +1), (+1, 0), (0, -1) 計 (+1, 0) (+1, 0), (0, +1), (-1, 0) 計 (0, +1) (2, 2)から (0, +1), (-1, 0), (0, -1) 計 (-1, 0) (-1, 0), (0, +1), (+1, 0) 計 (0, +1) (3, 2)の場合 16通り □□□ □□□ 123 165 145 612 216 561 541 321 654 234 236 543 543 432 632 456 456 632 432 345 543 234 236 654 321 541 561 216 612 165 145 123 (3, 3)の場合 40通り □□□ □□□ □□□ 123 123 123 129 | 187 189 167 145 894 874 654 438 | 296 276 258 236 765 965 789 567 | 345 345 349 987 (x4) 923 329 | 789 543 | 567 765 | 345 987 814 418 | 612 612 | 418 814 | 216 216 765 567 | 543 789 | 329 923 | 987 345 1. 行き止まりが3つ以上あるグラフは一筆書きできない (行き止まりとは、繋がっている点が1つしかない点) e. g. □□□ □ 【問1】 行き止まりが3つ以上あるグラフを一筆書きできないのは何故か。 【問2】 点1つのみのグラフを一筆書き可能とするか。 【問3】 (3, 3)のグラフで(2, 1), (1, 2), (2, 3), (3, 2)始点の一筆書き不可能なのは何故か。 【問4】 任意の正則グラフで、一筆書きできるパターンの数をどう計算するか。 【問5】 (5, 5)のグラフで(3, 2), (2, 3), (3, 4), (4, 3)始点の一筆書き不可能なのは何故か。 【問6】 任意のグラフで一筆書き不可能な始点が存在することはどのように分かるか。 【問7】 KAERU JUMP(http //www.gamedesign.jp/flash/kaeru/kaeru_jp.html)の解法は何か。 行き止まりとは、隣り合うノードが1つ以下であるノード。 Tグラフとは、行き止まりが3つ以上あるグラフ。 1. Tグラフは一筆書き不可能 2. グラフGから始点xを除いたグラフG がTグラフであるとき、グラフGにおいて始点xからの一筆書きは不可能 3. グラフGから始点xを除いたグラフG に行き止まりが2つ以上あるとき、グラフGにおいて始点xからの一筆書きは不可能 4. 隣り合うノードが無いノードが存在するグラフは、一筆書き不可能 【問8】 Tグラフであることは、一筆書き不可能であることと同値か。 (4, 3)の場合 ?通り □□□□ □□□□ □□□□ 1234 1234 1234 123c 12ba 12bc 129a 1256 abc5 c985 8765 654b 43c9 43a9 438b c347 9876 ba76 9abc 789a 5678 5678 567c ba98 1a98 2bc7 3456 (中断) 3. グラフGから始点xを除いたグラフG に行き止まりが2つ以上あるとき、グラフGにおいて始点xからの一筆書きは不可能 誤り 反例: □□□ [1, 1]を除くと[2, 1]と[3, 1]が行き止まりになり、行き止まりが2つ以上になるが、[1, 1]からの一筆書きは可能なグラフ 5. グラフGから始点xを除いたグラフG が、行き止まりのないグラフであるとき、グラフGにおいて始点xからの一筆書き可能 反例: □□ □□ □□□□□ [3, 2]を除いても行き止まりは増えないが、[3, 2]からの一筆書きは不可能なグラフ グラフの拡張 三角グラフ __ /\/\  ̄ ̄ ̄ ̄ 六角グラフ /\/\ | | | /\/\/\ \/\/\/ | | | \/\/ トーラス □□□ □ □ □□□ 終点には偶奇性がある。 ☆=始点 ●=終点 ■=可能終点 2x2 ☆■ ■□ →↓ ↓● ●← →↑ 3x2 ☆■□ ■□■ ↓●← ↓→↓ →→↓ →→↑ →↑● ●←← 3x3 ☆□■ □■□ ■□■ ↓↓← ↓→● ↓→↓ ↓→↓ ↓●↑ ↓↑← ↓↑↓ →↑↓ →→↑ →→↑ →↑● ●←← ☆=始点 ★=可能始点 ●=終点 ■=可能終点 ☆■□ ■ □ □□□ □☆□■□ □ □ □ □■□■□ □□□□□ □ □ □ □□□□□ □ □ □ □□□□□ ★□★ □★□ ★□★ ★★★★★ ★★□★★ ★□★□★ ★★□★★ ★★★★★ □□□□□□□ □□□□□□□ □□□□□□□ □□□□□□□ □□□□□□□ □□□□□□□ □□□□□□□ ? ★★ ★□★ □□□ □ ★□★ □★ ★★ ★★ ★★★ ★★★ ★★★★ ★★★★ ★★★★ ★★★★ ★★★★ ★★★★ ★★★★ 【問9】 □ □ □□□ □□□ が一筆書き不能グラフなのは何故か。 【問10】 グラフGから、不可能始点xを除いたグラフG は、一筆書き不能か。 【答9】 偶数目と奇数目の数の差が2以上あるから。 ■=偶数目 □=奇数目 (一筆書き不能なグラフ) ■ ■ □■□ ■□■ 偶数目:5 奇数目:3 (一筆書き不能なグラフ) ■□■ ■ 偶数目:3 奇数目:1 (一筆書き不能なグラフ) ■□■□■ □ □ □ ■□■□■ □ □ □ ■□■□■ 偶数目:9 奇数目:12 III. 偶数点と奇数点の差が2以上あるグラフは、一筆書き不能。 ref. マス目の問題 http //www.junko-k.com/mondai/mondai131.htm 5x5の場合、加えて [2, 1], [4, 1], [2, 1], [2, 5], [4, 1], [4, 5], [5, 2], [5, 4]も 一筆書き不能始点だった。 ★□★□★ □★□★□ ★□★□★ □★□★□ ★□★□★ 【問12】 一筆書き不能グラフはすべて、偶数ノードと奇数ノードの差が2つ以上あるのか? 反例: □ ■ ■ □ □ ■ (偶数ノードと奇数ノードの数の差が2つ未満であり、かつ一筆書き不能なグラフ)
https://w.atwiki.jp/kimikage/pages/51.html
印刷ダイアログを表示して印刷。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Printing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 Form { private PrintDocument prtDoc = new PrintDocument(); private PrintDialog prtDialog = new PrintDialog(); public Form1() { InitializeComponent(); } /// summary /// フォームロード /// /summary /// param name="sender" /param /// param name="e" /param private void Form1_Load(object sender, EventArgs e) { // PrintPageイベントに処理を追加 this.prtDoc.PrintPage += prtDoc_PrintPage; // 印刷ダイアログの印刷ドキュメントを設定 this.prtDialog.Document = prtDoc; } /// summary /// 印刷ボタンクリック /// /summary /// param name="sender" /param /// param name="e" /param private void btnPrint_Click(object sender, EventArgs e) { // 印刷ダイアログを表示 if (this.prtDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { // 印刷処理 this.prtDoc.Print(); } } /// summary /// プリントドキュメント印刷 /// /summary /// param name="sender" /param /// param name="e" /param private void prtDoc_PrintPage(object sender, PrintPageEventArgs e) { // 描画対象のグラフィクスを設定 Graphics g = e.Graphics; // グラフィクスに描画 g.DrawString("印刷しちゃうぞ!", new Font("MS ゴシック", 9F, System.Drawing.FontStyle.Bold), Brushes.Black, this.prtDoc.PrinterSettings.DefaultPageSettings.PrintableArea.X, this.prtDoc.PrinterSettings.DefaultPageSettings.PrintableArea.Y); } } }
https://w.atwiki.jp/mieyanman/pages/23.html
myfolder? [sqlplus_desc] clsDesc.vb Public Class clsDesc Public Property c0Name As String = "" Public Property c1Null As String = "" Public Property c2Type As String = "" End Class frmTabFile.Designer.vb Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated() _ Partial Class frmTabFile Inherits System.Windows.Forms.Form フォームがコンポーネントの一覧をクリーンアップするために dispose をオーバーライドします。 System.Diagnostics.DebuggerNonUserCode() _ Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then components.Dispose() End If Finally MyBase.Dispose(disposing) End Try End Sub Windows フォーム デザイナーで必要です。 Private components As System.ComponentModel.IContainer メモ 以下のプロシージャは Windows フォーム デザイナーで必要です。 Windows フォーム デザイナーを使用して変更できます。 コード エディターを使って変更しないでください。 System.Diagnostics.DebuggerStepThrough() _ Private Sub InitializeComponent() Me.Label1 = New System.Windows.Forms.Label() Me.Label2 = New System.Windows.Forms.Label() Me.TxtConnect = New System.Windows.Forms.TextBox() Me.TxtTableName = New System.Windows.Forms.TextBox() Me.Button1 = New System.Windows.Forms.Button() Me.Label3 = New System.Windows.Forms.Label() Me.TxtWorkFolder = New System.Windows.Forms.TextBox() Me.DataGridView1 = New System.Windows.Forms.DataGridView() Me.Column1 = New System.Windows.Forms.DataGridViewTextBoxColumn() Me.Column2 = New System.Windows.Forms.DataGridViewTextBoxColumn() Me.Column3 = New System.Windows.Forms.DataGridViewTextBoxColumn() Me.Label4 = New System.Windows.Forms.Label() Me.Label5 = New System.Windows.Forms.Label() Me.Label6 = New System.Windows.Forms.Label() Me.TxtTxtFile = New System.Windows.Forms.TextBox() Me.TxtSqlFile = New System.Windows.Forms.TextBox() Me.TxtBatFile = New System.Windows.Forms.TextBox() Me.Button2 = New System.Windows.Forms.Button() Me.Button3 = New System.Windows.Forms.Button() Me.ChkDelWorkFile = New System.Windows.Forms.CheckBox() CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() Label1 Me.Label1.AutoSize = True Me.Label1.Location = New System.Drawing.Point(12, 9) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(47, 12) Me.Label1.TabIndex = 0 Me.Label1.Text = "Connect" Label2 Me.Label2.AutoSize = True Me.Label2.Location = New System.Drawing.Point(12, 35) Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(62, 12) Me.Label2.TabIndex = 1 Me.Label2.Text = "TableName" TxtConnect Me.TxtConnect.Location = New System.Drawing.Point(81, 6) Me.TxtConnect.Name = "TxtConnect" Me.TxtConnect.Size = New System.Drawing.Size(100, 19) Me.TxtConnect.TabIndex = 2 TxtTableName Me.TxtTableName.Location = New System.Drawing.Point(81, 31) Me.TxtTableName.Name = "TxtTableName" Me.TxtTableName.Size = New System.Drawing.Size(100, 19) Me.TxtTableName.TabIndex = 3 Button1 Me.Button1.Location = New System.Drawing.Point(435, 2) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 4 Me.Button1.Text = "tab作成" Me.Button1.UseVisualStyleBackColor = True Label3 Me.Label3.AutoSize = True Me.Label3.Location = New System.Drawing.Point(12, 59) Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(62, 12) Me.Label3.TabIndex = 5 Me.Label3.Text = "WorkFolder" TxtWorkFolder Me.TxtWorkFolder.Location = New System.Drawing.Point(81, 56) Me.TxtWorkFolder.Name = "TxtWorkFolder" Me.TxtWorkFolder.Size = New System.Drawing.Size(100, 19) Me.TxtWorkFolder.TabIndex = 6 Me.TxtWorkFolder.Text = "C \Temp" DataGridView1 Me.DataGridView1.AllowUserToAddRows = False Me.DataGridView1.AllowUserToDeleteRows = False Me.DataGridView1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.DataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize Me.DataGridView1.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.Column1, Me.Column2, Me.Column3}) Me.DataGridView1.Location = New System.Drawing.Point(14, 81) Me.DataGridView1.Name = "DataGridView1" Me.DataGridView1.ReadOnly = True Me.DataGridView1.RowTemplate.Height = 21 Me.DataGridView1.Size = New System.Drawing.Size(744, 385) Me.DataGridView1.TabIndex = 7 Column1 Me.Column1.HeaderText = "名前" Me.Column1.Name = "Column1" Me.Column1.ReadOnly = True Column2 Me.Column2.HeaderText = "NULL?" Me.Column2.Name = "Column2" Me.Column2.ReadOnly = True Column3 Me.Column3.HeaderText = "型" Me.Column3.Name = "Column3" Me.Column3.ReadOnly = True Label4 Me.Label4.AutoSize = True Me.Label4.Location = New System.Drawing.Point(234, 9) Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(38, 12) Me.Label4.TabIndex = 8 Me.Label4.Text = "txtFile" Label5 Me.Label5.AutoSize = True Me.Label5.Location = New System.Drawing.Point(234, 35) Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(39, 12) Me.Label5.TabIndex = 9 Me.Label5.Text = "sqlFile" Label6 Me.Label6.AutoSize = True Me.Label6.Location = New System.Drawing.Point(234, 59) Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(40, 12) Me.Label6.TabIndex = 10 Me.Label6.Text = "batFile" TxtTxtFile Me.TxtTxtFile.Location = New System.Drawing.Point(280, 6) Me.TxtTxtFile.Name = "TxtTxtFile" Me.TxtTxtFile.Size = New System.Drawing.Size(100, 19) Me.TxtTxtFile.TabIndex = 11 Me.TxtTxtFile.Text = "desc.txt" TxtSqlFile Me.TxtSqlFile.Location = New System.Drawing.Point(280, 31) Me.TxtSqlFile.Name = "TxtSqlFile" Me.TxtSqlFile.Size = New System.Drawing.Size(100, 19) Me.TxtSqlFile.TabIndex = 12 Me.TxtSqlFile.Text = "desc.sql" TxtBatFile Me.TxtBatFile.Location = New System.Drawing.Point(280, 56) Me.TxtBatFile.Name = "TxtBatFile" Me.TxtBatFile.Size = New System.Drawing.Size(100, 19) Me.TxtBatFile.TabIndex = 13 Me.TxtBatFile.Text = "desc.bat" Button2 Me.Button2.Location = New System.Drawing.Point(435, 27) Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 14 Me.Button2.Text = "tab開く" Me.Button2.UseVisualStyleBackColor = True Button3 Me.Button3.Location = New System.Drawing.Point(435, 52) Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(75, 23) Me.Button3.TabIndex = 15 Me.Button3.Text = "フォルダ開く" Me.Button3.UseVisualStyleBackColor = True ChkDelWorkFile Me.ChkDelWorkFile.AutoSize = True Me.ChkDelWorkFile.Checked = True Me.ChkDelWorkFile.CheckState = System.Windows.Forms.CheckState.Checked Me.ChkDelWorkFile.Location = New System.Drawing.Point(551, 5) Me.ChkDelWorkFile.Name = "ChkDelWorkFile" Me.ChkDelWorkFile.Size = New System.Drawing.Size(85, 16) Me.ChkDelWorkFile.TabIndex = 16 Me.ChkDelWorkFile.Text = "DelWorkFile" Me.ChkDelWorkFile.UseVisualStyleBackColor = True Form1 Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(770, 478) Me.Controls.Add(Me.ChkDelWorkFile) Me.Controls.Add(Me.Button3) Me.Controls.Add(Me.Button2) Me.Controls.Add(Me.TxtBatFile) Me.Controls.Add(Me.TxtSqlFile) Me.Controls.Add(Me.TxtTxtFile) Me.Controls.Add(Me.Label6) Me.Controls.Add(Me.Label5) Me.Controls.Add(Me.Label4) Me.Controls.Add(Me.DataGridView1) Me.Controls.Add(Me.TxtWorkFolder) Me.Controls.Add(Me.Label3) Me.Controls.Add(Me.Button1) Me.Controls.Add(Me.TxtTableName) Me.Controls.Add(Me.TxtConnect) Me.Controls.Add(Me.Label2) Me.Controls.Add(Me.Label1) Me.Name = "Form1" Me.Text = "TableNameを基にtabファイルを作成" CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() End Sub Friend WithEvents Label1 As System.Windows.Forms.Label Friend WithEvents Label2 As System.Windows.Forms.Label Friend WithEvents TxtConnect As System.Windows.Forms.TextBox Friend WithEvents TxtTableName As System.Windows.Forms.TextBox Friend WithEvents Button1 As System.Windows.Forms.Button Friend WithEvents Label3 As System.Windows.Forms.Label Friend WithEvents TxtWorkFolder As System.Windows.Forms.TextBox Friend WithEvents DataGridView1 As System.Windows.Forms.DataGridView Friend WithEvents Column1 As System.Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents Column2 As System.Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents Column3 As System.Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents Label4 As System.Windows.Forms.Label Friend WithEvents Label5 As System.Windows.Forms.Label Friend WithEvents Label6 As System.Windows.Forms.Label Friend WithEvents TxtTxtFile As System.Windows.Forms.TextBox Friend WithEvents TxtSqlFile As System.Windows.Forms.TextBox Friend WithEvents TxtBatFile As System.Windows.Forms.TextBox Friend WithEvents Button2 As System.Windows.Forms.Button Friend WithEvents Button3 As System.Windows.Forms.Button Friend WithEvents ChkDelWorkFile As System.Windows.Forms.CheckBox End Class frmTabFile.vb Imports System.Text.RegularExpressions Public Class frmTabFile Private Enum me_Col c0Name c1Null c2Type End Enum Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.TxtConnect.Text = pf_GetIni("", "DESC", "Connect", "ユーザ名/パスワード@ネットサービス名") Me.TxtTableName.Text = pf_GetIni("", "DESC", "TableName", "DUAL") Me.TxtWorkFolder.Text = pf_GetIni("", "DESC", "WorkFolder", "C \Temp") Me.TxtTxtFile.Text = pf_GetIni("", "DESC", "txtFile", "desc.txt") Me.TxtSqlFile.Text = pf_GetIni("", "DESC", "sqlFile", "desc.sql") Me.TxtBatFile.Text = pf_GetIni("", "DESC", "batFile", "desc.bat") End Sub Private Sub Form1_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed Call ps_PutIni("", "DESC", "Connect", Me.TxtConnect.Text) Call ps_PutIni("", "DESC", "TableName", Me.TxtTableName.Text) Call ps_PutIni("", "DESC", "WorkFolder", Me.TxtWorkFolder.Text) Call ps_PutIni("", "DESC", "txtFile", Me.TxtTxtFile.Text) Call ps_PutIni("", "DESC", "sqlFile", Me.TxtSqlFile.Text) Call ps_PutIni("", "DESC", "batFile", Me.TxtBatFile.Text) If Me.ChkDelWorkFile.Checked Then Dim w_TxtFile As String = String.Format("{0}\{1}", Me.TxtWorkFolder.Text, Me.TxtTxtFile.Text) Dim w_SqlFile As String = String.Format("{0}\{1}", Me.TxtWorkFolder.Text, Me.TxtSqlFile.Text) Dim w_BatFile As String = String.Format("{0}\{1}", Me.TxtWorkFolder.Text, Me.TxtBatFile.Text) Call ms_DelFile(w_BatFile) Call ms_DelFile(w_SqlFile) Call ms_DelFile(w_TxtFile) End If End Sub Private Sub DataGridView1_CellPainting(sender As Object, e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting If e.ColumnIndex 0 AndAlso e.RowIndex = 0 Then Call e.Paint(e.ClipBounds, DataGridViewPaintParts.All) Dim rect As Rectangle = e.CellBounds Call rect.Inflate(-2, -2) Call TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), e.CellStyle.Font, rect, e.CellStyle.ForeColor, TextFormatFlags.Right Or TextFormatFlags.VerticalCenter) e.Handled = True End If End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim w_TxtFile As String = String.Format("{0}\{1}", Me.TxtWorkFolder.Text, Me.TxtTxtFile.Text) Dim w_TableName As String = Me.TxtTableName.Text.ToUpper Dim w_Desc As String = mf_Desc(w_TxtFile, w_TableName, Me.TxtConnect.Text) Dim w_SqlFile As String = String.Format("{0}\{1}", Me.TxtWorkFolder.Text, Me.TxtSqlFile.Text) Call ms_StreamWriter(w_SqlFile, w_Desc) Dim w_BatCommand As String = String.Format("SQLPLUS {0} @{1}", Me.TxtConnect.Text, w_SqlFile) Dim w_BatFile As String = String.Format("{0}\{1}", Me.TxtWorkFolder.Text, Me.TxtBatFile.Text) Call ms_StreamWriter(w_BatFile, w_BatCommand) Call ms_StartProcessWaitForExit(w_BatFile) Dim w_FileText As String = mf_GetFileText(w_TxtFile) Dim w_StringList As List(Of String) = mf_FileTextToStringList(w_FileText) Dim w_DescList As List(Of clsDesc) = mf_StringListToDescList(w_StringList) Me.DataGridView1.Rows.Clear() If w_DescList.Count 0 Then Me.DataGridView1.Rows.Add(w_DescList.Count) For i As Integer = 0 To w_DescList.Count - 1 Me.DataGridView1.Rows(i).Cells(me_Col.c0Name).Value = w_DescList(i).c0Name Me.DataGridView1.Rows(i).Cells(me_Col.c1Null).Value = w_DescList(i).c1Null Me.DataGridView1.Rows(i).Cells(me_Col.c2Type).Value = w_DescList(i).c2Type Next Me.DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells) Dim sb As New sb() For i As Integer = 0 To Me.DataGridView1.Rows.Count - 1 Dim w_c0Name As String = mf_ObjectToString(Me.DataGridView1.Rows(i).Cells(me_Col.c0Name).Value) Dim w_c1Null As String = mf_ObjectToString(Me.DataGridView1.Rows(i).Cells(me_Col.c1Null).Value) Dim w_c2Type As String = mf_ObjectToString(Me.DataGridView1.Rows(i).Cells(me_Col.c2Type).Value) sb.Add("{1}{0}{2}{0}{3}", vbTab, w_c0Name, w_c1Null, w_c2Type) Next Dim w_tabFile As String = String.Format("{0}\{1}.tab", Me.TxtWorkFolder.Text, Me.TxtTableName.Text) Call ms_StreamWriter(w_tabFile, sb.ToString) Select Case MsgBox("tabファイルを開きますか。", MsgBoxStyle.YesNo Or MsgBoxStyle.DefaultButton2 Or MsgBoxStyle.SystemModal, "確認") Case MsgBoxResult.Yes Call ms_StartProcess(w_tabFile) Case Else End Select End If End Sub Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click Dim w_tabFile As String = String.Format("{0}\{1}.tab", Me.TxtWorkFolder.Text, Me.TxtTableName.Text) Call ms_StartProcess(w_tabFile) End Sub Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click Dim w_WorkFolder As String = Me.TxtWorkFolder.Text Call ms_StartProcess(w_WorkFolder) End Sub Private Function mf_Desc(wp_TxtFile As String, wp_TableName As String, wp_Connect As String) As String Dim sb As New sb() sb.Add("connect {0}", wp_Connect) sb.Add("set echo off") sb.Add("set heading off") sb.Add("set pagesize 0") sb.Add("set feedback off") sb.Add("set linesize 80") sb.Add("set trimspool on") sb.Add("spool {0}", wp_TxtFile) sb.Add("desc {0}", wp_TableName) sb.Add("spool off") sb.Add("set linesize 80") sb.Add("clear") sb.Add("exit") Return sb.ToString End Function Private Sub ms_StreamWriter(wp_File As String, wp_Text As String) Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("shift_jis") Dim sw As New System.IO.StreamWriter(wp_File, False, enc) sw.Write(wp_Text) sw.Close() End Sub Private Sub ms_StartProcessWaitForExit(wp_BatFile As String) Dim p As System.Diagnostics.Process = System.Diagnostics.Process.Start(wp_BatFile) p.WaitForExit() p.Close() p.Dispose() End Sub Private Sub ms_StartProcess(wp_File As String) Dim p As System.Diagnostics.Process = System.Diagnostics.Process.Start(wp_File) End Sub Private Function mf_GetFileText(wp_TxtFile As String) As String Dim ret As String = "" Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("shift_jis") Dim sr As New System.IO.StreamReader(wp_TxtFile, enc) ret = sr.ReadToEnd() sr.Close() Return ret End Function Private Function mf_FileTextToStringList(wp_FileText As String) As List(Of String) Dim ret As New List(Of String) Dim a As String() = Split(wp_FileText, vbCrLf, -1, CompareMethod.Text) For i As Integer = 0 To a.Count - 1 Dim w As String = a(i).Trim If w "" Then If Not mf_Header(w) Then If Not mf_Separator(w) Then ret.Add(w) End If End If End If Next Return ret End Function Private Function mf_Header(wp_String As String) As Boolean Dim ret As Boolean = False Dim w As String = wp_String.Replace(" ", "") If w.Trim = "名前NULL?型" Then ret = True End If Return ret End Function Private Function mf_Separator(wp_String As String) As Boolean Dim ret As Boolean = False Dim w As String = wp_String.Replace("-", "") If w.Trim = "" Then ret = True End If Return ret End Function Private Function mf_StringListToDescList(wp_StringList As List(Of String)) As List(Of clsDesc) Dim ret As New List(Of clsDesc) For i As Integer = 0 To wp_StringList.Count - 1 Dim w_input As String = wp_StringList(i) Dim w_pattern As String = " +" Dim w_replacement As String = vbTab Dim w As String = Regex.Replace(w_input, w_pattern, w_replacement, RegexOptions.Multiline Or RegexOptions.IgnoreCase) Dim a As String() = Split(w, vbTab, -1, CompareMethod.Text) Select Case a.Count Case 2 Dim w_Desc As New clsDesc() w_Desc.c0Name = a(0) w_Desc.c2Type = a(1) ret.Add(w_Desc) Case 3 Dim w_Desc As New clsDesc() w_Desc.c0Name = a(0) w_Desc.c1Null = a(1) w_Desc.c2Type = a(2) ret.Add(w_Desc) Case Else End Select Next Return ret End Function Private Function mf_ObjectToString(wp_Object As Object) As String Dim ret As String = "" If Not wp_Object Is Nothing Then ret = wp_Object.ToString End If Return ret End Function Private Sub ms_DelFile(wp_File As String) System.IO.File.Delete(wp_File) End Sub End Class mdlInit.vb Imports System.Runtime.InteropServices Module mdlInit DllImport("KERNEL32.DLL", CharSet =CharSet.Auto) _ Public Function GetPrivateProfileString( _ ByVal lpAppName As String, _ ByVal lpKeyName As String, _ ByVal lpDefault As String, _ ByVal lpReturnedString As System.Text.StringBuilder, _ ByVal nSize As Integer, _ ByVal lpFileName As String) As Integer End Function DllImport("KERNEL32.DLL") _ Public Function WritePrivateProfileString( _ ByVal lpAppName As String, _ ByVal lpKeyName As String, _ ByVal lpString As String, _ ByVal lpFileName As String) As Integer End Function Public Function pf_GetIni(ByVal wp_path As String, ByVal wp_section As String, ByVal wp_key As String, ByVal wp_Default As String) As String Dim ret As String = wp_Default Dim sb As New System.Text.StringBuilder sb.Capacity = 256 Dim i As Integer = GetPrivateProfileString(wp_section, wp_key, wp_Default, sb, sb.Capacity, mf_path(wp_path)) ret = sb.ToString Return ret End Function Public Sub ps_PutIni(ByVal wp_path As String, ByVal wp_section As String, ByVal wp_key As String, ByVal wp_value As String) Dim i As Integer = WritePrivateProfileString(wp_section, wp_key, wp_value, mf_path(wp_path)) End Sub Private Function mf_path(ByVal wp_path As String) As String Dim ret As String = wp_path If ret = "" Then Dim w_path As String = Application.StartupPath If w_path.EndsWith("\") = False Then w_path = w_path "\" End If ret = String.Format("{0}{1}.ini", w_path, My.Application.Info.AssemblyName) End If Return ret End Function End Module sb.vb Public Class sb Private m_sb As System.Text.StringBuilder Public Sub New() m_sb = New System.Text.StringBuilder() End Sub Public Overrides Function ToString() As String Return m_sb.ToString() End Function Public Function Add(ByVal wp_String As String, ByVal ParamArray wp_Args() As Object) m_sb.AppendFormat(wp_String, wp_Args) m_sb.Append(ControlChars.CrLf) Return m_sb End Function Public Function ToStringRemoveLastCrLf() As String Dim ret As String = m_sb.ToString If ret.Length = vbCrLf.Length Then Dim i As Integer = ret.Length - vbCrLf.Length Dim w As String = ret.Substring(i) If w = vbCrLf Then ret = ret.Substring(0, i) End If End If Return ret End Function Public Sub cb() Clipboard.SetText(m_sb.ToString()) End Sub End Class