HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0117
AAA同一行に文字を書き出したい5解決


AAA

リンク

2013/1/17(Thu) 19:53:28|NO.51931

昨日も質問させていただきましたが
今回も教えていただきたいことがあり質問させていただきました。
よろしくお願いします。



notesel data repeat length(map) repeat length2(map) noteadd str( map(x,y) ) noteadd "," x+=1 loop y+=1 : x = 0 loop notesave "data1"

とすると、
変数data に 配列変数map の値と , が交互に代入され、ファイルdata1 として保存されます。
そして、ファイルdata1 を開くと……

0
,
0
,
0
,

となっています。

これを、

0,0,0
0,0,0

などというように一定回数ごとに改行して保存をしたいのですが、何か方法はありますでしょうか。
わかる方教えていただけたらと思います。
よろしくお願いします



この記事に返信する


skyblue

リンク

2013/1/17(Thu) 20:01:08|NO.51932

noteaddを使わずに変数代入によって配列の内容をまとめる
改行したいときは「¥n(半角)」を変数に代入する。



AAA

リンク

2013/1/17(Thu) 20:10:30|NO.51935

>skyblueさん

早速の回答ありがとうございます。
具体的にはどういうことなのでしょうか?
↓自分なりに考えたものです。あってますでしょうか?


a = str( map(0,0) ) b = str( map(0,1) ) c = a+b+"\n"

これを繰り返していくということでしょうか。
間違っていたらすみません。
お手数ですがもう一度回答をよろしくお願いします。



玄冬

リンク

2013/1/17(Thu) 20:30:37|NO.51936

こういうことでしょうかね?


#define N 3;一行に入るデータ数 sdim data, 10000 dim map, 20, 40 repeat 20*40 map(cnt/40, cnt\40) = cnt loop notesel data v_txt = "" repeat length(map) //foreach(map)でも良いのでは? repeat length2(map) v_txt += str(map(y,x)) //map(x,y)では、xとyが逆だと思います if ((y * length2(map) + x) \ N) = N-1 : v_txt += "\n" : else : v_txt += "," ;データがN個たまったら改行を、それ以外のときは,を末尾に加える x+=1 //cntを用いると変数xが不要になりますよ loop y+=1 : x = 0 //y = cnt loop noteadd v_txt notesave data
mes "a\nb"と実行すればわかるように、\nを使えば
同一文字列内に改行を加えることができます



HT.

リンク

2013/1/17(Thu) 20:35:14|NO.51937

>AAAさん
合っていますがそれだとコンマが抜けているのでは?

repeat length(map) row = "" repeat length2(map) if cnt != 0 : row += "," row += map(x,y) x+=1 loop noteadd row y+=1 : x = 0 loop



AAA

リンク

2013/1/17(Thu) 20:48:55|NO.51938

>玄冬さん

ありがとうございます。
できてます!
ほんとうにありがとうございます


>HT.さん

たしかにコンマが抜けておりました。
こんなミスの積み重ねをすると駄目なんですよね。
アドバイス、ご指摘ありがとうございました。




みなさん今回まで回答していただきほんとうにありがとうございました。



ONION software Copyright 1997-2021(c) All rights reserved.