(現在 過去ログ88 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■13056 / inTopicNo.1)  桐10からcsv書き出し
  
□投稿者/ 尾形 -(2021/09/14(Tue) 10:05:09)
    よろしくお願いします

    桐10への移行を試行中です

    csvをUTF形式にて書き出したいです


    桐10にて「csv書き出し」はsjis形式みたいなので
    k3x形式で書き出しして
    拡張子を .k3x → .csv に変更して
    開いてみたら、セル分割してくれません


    良い方法ありませんでしょうか



引用返信 [メール受信/OFF] 削除キー/
■13061 / inTopicNo.2)  Re[1]: 桐10からcsv書き出し
□投稿者/ eo -(2021/09/14(Tue) 17:00:02)
    nkfがおすすめです。
    iconvでもなんとかなる場合もありますが、nkfは BOMありが選択肢としてあるし改行コードの指定もできます。(iconvでは無理?)

    下記の-Sw8Luの意味はSjisをutf8BOMありにLuは改行コードをLFにするの意

    システム "Cmd.exe","/c nkf -Sw8Lu cvrp.txt > cvrp.py"

    csvもいけるはず。

    桐でpythonコードを印字で書き出して使用しています。
    コード内のデータ部分をtblのデータをソックリ利用するためです^^;
引用返信 [メール受信/OFF] 削除キー/
■13062 / inTopicNo.3)  Re[1]: 桐10からcsv書き出し
□投稿者/ hidetake -(2021/09/14(Tue) 17:07:53)
    > csvをUTF形式にて書き出したいです

    UTF-8 は BOM付きで良いの?
    BOMなし、BOM取っ払った方が
    良いの?
引用返信 [メール受信/OFF] 削除キー/
■13063 / inTopicNo.4)  Re[1]: 桐10からcsv書き出し
□投稿者/ eo -(2021/09/14(Tue) 17:09:36)
    あ、UTF-16?
    ならオプションを変更してください。
引用返信 [メール受信/OFF] 削除キー/
■13064 / inTopicNo.5)  Re[2]: 桐10からcsv書き出し
□投稿者/ hidetake -(2021/09/14(Tue) 17:09:50)
    > UTF-8 は BOM付き

    uni2utf8b.vbs
    ---------------------------------------
    Dim arg, vax, var
    Set arg = WScript.Arguments
    If Arg.Count < 2 Then
    WScript.Quit
    End If

    vax = arg(0)
    var = arg(1)

    Const adTypeText = 2
    Const adSaveCreateOverWrite = 2

    Set Src = CreateObject("ADODB.Stream")
    Src.Open
    Src.Type = adTypeText
    Src.Charset = "Unicode"
    Src.LoadFromFile vax

    Set Dst = CreateObject("ADODB.Stream")
    Dst.Open
    Dst.Type = adTypeText
    Dst.Charset = "UTF-8"
    Src.CopyTo Dst
    Src.Close

    Dst.SaveToFile var, adSaveCreateOverWrite
    Dst.Close

    Set Src = Nothing
    Set Dst = Nothing
    ---------------------------------------

引用返信 [メール受信/OFF] 削除キー/
■13065 / inTopicNo.6)  Re[2]: 桐10からcsv書き出し
□投稿者/ hidetake -(2021/09/14(Tue) 17:32:10)
    > UTF-8 は BOMなし

    uni2utf8n.vbs
    ---------------------------------------
    Dim arg, vax, var
    Set arg = WScript.Arguments
    If Arg.Count < 2 Then
    WScript.Quit
    End If

    vax = arg(0)
    var = arg(1)

    Const adTypeText = 2
    Const adSaveCreateOverWrite = 2

    Set Src = CreateObject("ADODB.Stream")
    Src.Open
    Src.Type = adTypeText
    Src.Charset = "Unicode"
    Src.LoadFromFile vax

    Set Wrk = CreateObject("ADODB.Stream")
    Wrk.Open
    Wrk.Type = adTypeText
    Wrk.Charset = "UTF-8"
    Src.CopyTo Wrk
    Src.Close

    Wrk.Position = 0
    Wrk.Type = 1
    Wrk.Position = 3
    bin = Wrk.Read()
    Wrk.Close

    Set Dst = CreateObject("ADODB.Stream")
    Dst.Open
    Dst.Type = 1
    Dst.Write(bin)
    Dst.SaveToFile var, adSaveCreateOverWrite
    Dst.Close

    Set Src = Nothing
    Set Dst = Nothing
    ---------------------------------------
引用返信 [メール受信/OFF] 削除キー/
■13066 / inTopicNo.7)  Re[2]: 桐10からcsv書き出し
□投稿者/ hidetake -(2021/09/14(Tue) 17:35:31)
    uni2utf8b.vbs
    uni2utf8n.vbs

    Unicodeファイルを UTF-8 BOM付き、
    もしくは、UTF-8 BOMなしに変換する
    VBScript です。

    引数は、入力ファイル名 出力ファイル名
    です。

    uni2utf8n.vbs x:\path\in.txt x:\path\out.csv
    などして下さい。

引用返信 [メール受信/OFF] 削除キー/
■13067 / inTopicNo.8)  Re[1]: 桐10からcsv書き出し
□投稿者/ 尾形 -(2021/09/14(Tue) 18:20:02)
    どうも、皆様、色々とありがとうございます

    過去にもあった質問なのですね

    手軽にエクセル化したいと思ってます
    参考になりました
    ありがとうございました




解決済み!
引用返信 [メール受信/OFF] 削除キー/
■13071 / inTopicNo.9)  Re[2]: 桐10からcsv書き出し
□投稿者/ eo -(2021/09/14(Tue) 18:58:20)
    2021/09/14(Tue) 19:14:43 編集(投稿者)

    桐だけでは解決できない問題を解決するヒントになれば?の投稿でした。
    尾形さん、ありがとう♪
引用返信 [メール受信/OFF] 削除キー/
■13072 / inTopicNo.10)  Re[2]: 桐10からcsv書き出し
□投稿者/ hidetake -(2021/09/14(Tue) 19:21:16)
    > 手軽にエクセル化したいと思ってます
    で、済むのでしたら Excel でのデータ連係が
    楽だと思います。

    Excel は Unicode な CSVファイルは読み込める
    ようだけれど、UTF-8 BOMなしは、文字化けする。
    UTF-8 BOM付きは、文字化けせず読み込めるよう
    ですね。

引用返信 [メール受信/OFF] 削除キー/
■13073 / inTopicNo.11)  Re[3]: 桐10からcsv書き出し
□投稿者/ hidetake -(2021/09/14(Tue) 20:10:12)
    桐の #UNICODE( 【 num | str 】 ) 関数を
    使って、頑張って UTF-8 ファイルを作るって
    案も、書かれていたけど、今は無くなった。

    UnicodeをUTF-8やUTF-16に変換する方法
    https://qiita.com/yasushi-jp/items/b006f7170ef3a86de09f

    これを見ると、とてもとても大変そうだ。
    1項目ずつ、一文字ずつ、回していって
    あとは、印字コマンドで書き出していく
    のか。相当大変そう。

引用返信 [メール受信/OFF] 削除キー/
■13074 / inTopicNo.12)  Re[4]: 桐10からcsv書き出し
□投稿者/ hidetake -(2021/09/14(Tue) 20:20:32)
    > UnicodeをUTF-8やUTF-16に変換する方法
    > https://qiita.com/yasushi-jp/items/b006f7170ef3a86de09f
    
    桐9 の途中で、次の bit演算子は
    使えるようになったけど
    #AND(num1,num2)
    #NOT(num)
    #OR(num1,num2)
    #LSHIFT(num,x)
    #RSHIFT(num,x)
    #XOR(num1,num2)
    bit の文字列に変換するような
    関数は無かったはず。
    
    昔、次のようなのを必要に応じて
    作ったけど。
    
    /* ========================================================= BIT 演算 === */
      proc toBITSTR(長整数 &bitnum, 参照 文字列 &bitstr)
      /* 数値(10進数)を 16bit の BITSTR に変換する */
        変数宣言 整数{&bitflg}
        &bitstr=""
        for &bitflg=15,0,-1
            &bitstr=&bitstr+#str(#int(&bitnum/2^&bitflg))
            &bitnum=&bitnum-#int(&bitnum/2^&bitflg)*2^&bitflg
        end
      end
    /* ---------------------------------------------------------------------- */
      proc toBITNUM(文字列 &bitstr, 参照 長整数 &bitnum)
      /* 16bit の BITSTR(16bit) を数値(10進数)に変換する */
        変数宣言 整数{&bitflg}
        &bitnum=0
        for &bitflg=1,16
            &bitnum=&bitnum+#num(#sstr(&bitstr,&bitflg,1))*2^(16-&bitflg)
        end
      end
    /* ---------------------------------------------------------------------- */
      proc notBIT(文字列 &bitstr, 参照 文字列 &notbitstr)
      /* 16bit の BITSTR(16bit) の NOT をとる */
        変数宣言 整数{&bitflg}
        &notbitstr=""
        for &bitflg=1,16
            &notbitstr=&notbitstr \
                      +#str(.not#num(#sstr(&bitstr,&bitflg,1)))
        end
      end
    /* ---------------------------------------------------------------------- */
      proc andBIT(文字列 &bitstr1, 文字列 &bitstr2, 参照 文字列 &bitstr)
      /* 16bit の BITSTR(16bit) 同士の AND をとる */
        変数宣言 整数{&bitflg}
        &bitstr=""
        for &bitflg=1,16
            &bitstr=&bitstr \
                   +#str((     #num(#sstr(&bitstr1,&bitflg,1)) \
                          .and #num(#sstr(&bitstr2,&bitflg,1))))
        end
      end
    /* ---------------------------------------------------------------------- */
      proc orBIT(文字列 &bitstr1, 文字列 &bitstr2, 参照 文字列 &bitstr)
      /* 16bit の BITSTR(16bit) 同士の OR をとる */
        変数宣言 整数{&bitflg}
        &bitstr=""
        for &bitflg=1,16
            &bitstr=&bitstr \
                   +#str((    #num(#sstr(&bitstr1,&bitflg,1)) \
                          .or #num(#sstr(&bitstr2,&bitflg,1))))
        end
      end
    /* ---------------------------------------------------------------------- */
      proc xorBIT(文字列 &bitstr1, 文字列 &bitstr2, 参照 文字列 &bitstr)
      /* 16bit の BITSTR(16bit) 同士の XOR をとる */
        変数宣言 整数{&bitflg}
        &bitstr=""
        for &bitflg=1,16
            &bitstr=&bitstr \
                   +#str(.not(#sstr(&bitstr1,&bitflg,1) \
                             =#sstr(&bitstr2,&bitflg,1)))
        end
      end
    /* ================================================== end of BIT 演算 === */
    
    

引用返信 [メール受信/OFF] 削除キー/
■13075 / inTopicNo.13)  Re[5]: 桐10からcsv書き出し
□投稿者/ hidetake -(2021/09/14(Tue) 20:27:47)
引用返信 [メール受信/OFF] 削除キー/
■13076 / inTopicNo.14)  Re[4]: 桐10からcsv書き出し
□投稿者/ ONnoji -(2021/09/14(Tue) 22:05:31)
    > 桐の #UNICODE( 【 num | str 】 ) 関数を
    > 使って、頑張って UTF-8 ファイルを作るって
    > 案も、書かれていたけど、今は無くなった。

    試したところ、桐10sの[印字 _10進数]だと、豆腐(□)に化けちゃうんですよ。

    そこで、引っ込めたという次第ですよ。(^^ゞ

    改めて、桐9-2012で試したら、化けずに済みました。

    どうやら桐10/桐10sのデグレードのようです。

    K3殿には報告しておきました。


引用返信 [メール受信/OFF] 削除キー/
■13077 / inTopicNo.15)  Re[5]: 桐10からcsv書き出し
□投稿者/ hidetake -(2021/09/14(Tue) 23:33:52)
    2021/09/14(Tue) 23:59:26 編集(投稿者)
    2021/09/14(Tue) 23:42:33 編集(投稿者)

    桐10 では

    印字 _000,

    が「KU0006:桐内部エラー3()」
    と、なってしまいますね。

    これは
    印字開始 "L:\text.csv",SJIS出力=する,制御文字展開=しない
    と、した場合か。

    印字開始 "L:\text.csv"
    とすると
    印字 _000,
    1行でも FF FE 00 00
    となってしまう。
    印字コマンドで FF FE は勝手に付加され
    あとは、うしろに 00 が付加されるようですね。

引用返信 [メール受信/OFF] 削除キー/
■13079 / inTopicNo.16)  Re[6]: 桐10からcsv書き出し
□投稿者/ hidetake -(2021/09/15(Wed) 02:36:48)
    2021/09/15(Wed) 06:35:27 編集(投稿者)

    > 桐10 では
    >
    > 印字 _000,
    >
    > が「KU0006:桐内部エラー3()」
    > と、なってしまいますね。
    >
    > これは
    > 印字開始 "L:\text.csv",SJIS出力=する,制御文字展開=しない
    > と、した場合か。
    >
    > 印字開始 "L:\text.csv"
    > とすると
    > 印字 _000,
    > 1行でも FF FE 00 00
    > となってしまう。
    > 印字コマンドで FF FE は勝手に付加され
    > あとは、うしろに 00 が付加されるようですね。
    >

    当然、桐で文字を書き出す機能なので
    Unicode (UTF-16) での出力なので
    2バイトの文字として出力されて当然
    だけれど、
    ※もちろん、タブや改行だって

    SJIS出力=する と指定した以上、
    旧来の機能と同じように使えて欲しいのだが。
    SJIS出力=する とした場合も、実際に出力
    されるコードは _000 以外でも、全く
    別のコードとなってしまう。桐9 と異なり。

    印字 _255,
    印字 _254,

    と、言うことで、桐10 での _xxx を使用した
    印字は、「SJIS出力=する」なし、もしくは
    「SJIS出力=しない」とした場合の動作は、
    Unicode を扱う桐としては、仕様的にも動作
    的にも正しい。
    ただし、「SJIS出力=する」とした場合の動作
    は旧来のシステムとの互換性は無くなった。

    添付ファイルのような、コマンドにバイナリを
    埋め込んで、実行時に書き出し、動作させる
    ようなプログラムは正常に動かなくなった。



vercheck.txt
/55KB
引用返信 [メール受信/OFF] 削除キー/
■13080 / inTopicNo.17)  Re[7]: 桐10からcsv書き出し
□投稿者/ 尾形 -(2021/09/15(Wed) 10:26:30)
    どうも、いつもありがとうございます


    桐10への移行は相当大変だろうなぁ
    と思い躊躇してましたが

    そこまで手間かけずに
    動作しそうなのでちょっとホッとしてます ^^


引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -