phpで定型テキストフォーマットを変換して出力。

T
つづみです。

S
ささらです。


タカハシです。

V
MAH01692

S
7月15日 晴れてる。

T
ウキウキすぎて夜にあまり寝付けることができずに朝を迎える。


国道279号やらを使い大間へと進む。

S
夏も本番になってきたのでライダーさんも多く、中にはホムセン箱などを積んだ人もちらほら見かけるように。

V
MAH01693
02045

こんな感じのテキストを特定の文字を改行位置で判断しCeVIOでインポート可能なテキストフォーマットに変換する。

//入力された文章を配列に
$text = $_POST['text'];
//$text = html_entity_decode($text);
$array = explode("\n", $text); // とりあえず行に分割
$array = array_map('trim', $array); // 各行にtrim()をかける
$array = array_filter($array, 'strlen'); // 文字数が0の行を取り除く
$array = array_values($array); // これはキーを連番に振りなおしてるだけ
//print_r($array);

//キーの整理と配列の作成
$result = array();
$i = 0;
$s = 0;


//初期構文チェック
if(!$array){
	echo "配列がないよ。";
	return;
}else if( !is_array($array) ){
	echo "から情報";
	return;
}else if( !preg_match('/^[STIO\-ー]*$/',$array[0] ) ){
	echo "コピペ箇所間違ってない?";
	return;
}

//配列の構造変更
foreach($array as $texts){
//全角ハイフン
if( preg_match('/^(S|T|O|I|ー|\-)$/',$texts) ){
	$text_jamp_flag = false;
	$result[$i]["name"] = $texts;
	// print_r($text_result);
	$i++;
}else if( preg_match('/^[STIO\-ー]*$/',$texts) ){
	$text_jamp_flag = false;
	//print_r(preg_split("//u", $texts, -1, PREG_SPLIT_NO_EMPTY));
	$result[$i]["name"] = preg_split("//u", $texts, -1, PREG_SPLIT_NO_EMPTY);
	$i++;
}else if( preg_match('/^(P|V)$/',$texts) ){
	$text_jamp_flag = true;
}else{
	if(!$text_jamp_flag)$result[$i - 1 ]["text"][] = $texts;
}

}

//print_r($result);

function write_name($name){
if($name == "S"){
	return "さとうささら";
}else if($name == "T"){
	return "すずきつづみ";
}else if($name == "O"){
	return "ONE";
}else if($name == "ー" or $name == "-"){
	return "タカハシ";
}
}


foreach($result as $result_text){


if(is_array( $result_text["name"]) ){
	$_count = count($result_text["name"]);
	// echo $_count;

	for($num = 0; $num < $_count; ){
		echo write_name($result_text["name"][$num])."\t".$result_text["text"][0]."\n";
		$num++;
	}
}else{
	$_count = count($result_text["text"]);
	// echo $_count;

	for($num = 0; $num < $_count; ){
		echo write_name($result_text["name"])."\t".$result_text["text"][$num]."\n";
		$num++;
	}
}

}

実行すると
T
つづみです。
とかが
すずきつづみ[\t]つづみです。
って具合に変換される。

・・・・。

けものフレンズのメディアを買いそうなんですけどもーーーー。

いや、普通に気兼ねなく楽しめる作品だと思う。
変なお色気でアピールとかもなく近年で一番すんなり見ることができた作品かもしれない。。。

あ、月末の31日から旅のスタートになります。
とりあえず、8日ほどかけて九州の上部を回っていったん戻ったのちに再開しようと思います。

はーい。

会社を退職したよー。
これから準備していくよー。

親知らずを始めて抜いた。
すげー緊張したけども拍子抜けするぐらいあっさり抜けた。
上の親知らずは抜きやすいらしい。

とりあえず、初日と二日目は血と涎が多くてなかなか寝付けれなかったが3日目になるとだいぶ落ち着いてきた。

注文しておいたバイクのパーツも届いたので整備をして取り付けをしてみよう。

お買い物リスト

アクションカムの電池
SDカード 64G クラス10 2~3枚くらい
REC-MOUNTS Bike用 ナビマウントセット ゴリラ 適合A用 NVP-TQ21 NVP-T20CA-PTQ22D CA-PT20D 対応ナビ用 対応クランプ径22.2/25.4mm用 (アームM(94mm)ベースマウント(ブラック)
サンワサプライ アルミメモリーカードケース(microSDカード用・両面収納タイプ) FC-MMC5MICN
ソーラーチャージャー
MG TRAIL 携帯ポンチョ 防寒シート付(遮光ポンチョは品切れだった

見ておきたいもの
スノピの150センチのタープポール
バウルー

買ったもの
小さめの焼き網。(12〜13センチ四方
UCO マイクロキャンドルランタン
kameyamaティーライトティン 50p
スライドガストーチ
急速充電対応USB付き電源タップ
PowerGreen モバイルバッテリー 10000mAh ソーラーチャージャー パワーバンク 防水 2USBポート iPhone&Android対応
ELECOM 電源ケーブル 延長コード 0.1m ホワイト T-ADR1WH
ORTLIEB ライトパック プロ 25

全部で5万5千円くらい・・・。

明日から

また通常業務だね。
とりあえず新しく購入したコットが届いたので試してみたけども
普通にぐっすり寝れる感じで素晴らしい。
問題点をどうしてもあげるというならピローがずれてしまうことがあるということぐらいか。

衣擦れの音とかは慣れれば平気だろうし、設置に面倒があるというのはもう仕様だから
設置者がなれればいいだろボケが!!!って感じになると思う。

そういうわけであけましておめでとうございます。
本年度もよろしくお願いします。

長距離キャンツー連泊仕様。

にするための荷物の想定と装備を決めておこう。

候補
・密閉バックルストッカー KB-540 ダークブルー 幅45×奥行37×高さ37cm
・ワイドストッカー グリーン/グレー WY-540
・RVBOX400 幅約32×奥行約27.5×高さ約27.5
・RVBOX600 幅約49.5×奥行約27.5×高さ約27.5
・RVBOX 600F 幅約51×奥行約28×高さ約18
・ハードプロ HDP-500 エコブラック 幅53×奥行27×高さ31cm 幅43×奥行18×高さ25cm
・ツールパワー590 ブラック 590×268×253mm 505×192×193(154)(底部)mm
・リングスター ドカット D-6000 538×262×165 597×336×300

いまざっとみただけでこんな感じ。

荷物を減らそうと思えばだいぶ減らせることができるけども、
利便性や快適性、収納性やバイクでの手間なんかの色々を考えるのは難しいな。

楽しいけども!

衣類なんかはパニアの片方にまとめて整理している状態にして、
もう片方にテント類、メインのボックス(シートバックまたはホムセン箱)にその他のもの
という形で行くのが基本とかんがえているけども

鍵なんかの保安パーツを考えたらトップケースを37から47に変更するのもありなんだよなぁとちょっと思う。

ちょっと話になったJSのこと

	var callee_fn = function(){ return 0; };
	console.log(callee_fn); //オブジェクトが返る
	console.log(callee_fn()); //実行結果が返る
		buttons:[
				{
					text: 'リセット',
					class: 'dialog_edit_page btn_bbs_add_reset',
					click: reset_dialog_bbs_add
				},
		],

JSの記述の仕方でclickしたさいの関数の指定に()がついてないのでどういうことかを聞いてみると
・test このままだとオブジェクトとして指定
・test() この指定だと該当箇所を読み込んだ瞬間実行される

という違いがあるとのこと。
こういう書き方があるのは初めてしった。

今年も早いもので・・・・?

年末が見えてきました。
お年玉、クリスマスプレゼントの準備をしなければと思いつつ。
新しく買ったテントを試したくて仕方なくソロキャンプへ再び。

新しく購入したものと、色々と今後への思惑や
実際に走行時にどうなるのかをチェックするための位置づけであったキャンツー?でしたが
考える基準となるものができて実りのあるものだったと思います。

まぁ、当たり前なんだけどもフルパニア+シートバック(大:荷物満載)は重い。
ちょっとうねった山間部の溝がはいった道路なんかを低速でずっと通らなければいけない。
なんて状況になったら、あたりまえだけどもしんどい。

キャンプ場で料理もしないで泊まるだけってスタンスでいくなら
テント・シェラフ・銀マット
くらいが最低限で
そのほかに追加で
・椅子・食事するさいのテーブル
という感じだろうかな?

(あ、当たり前だけど光源は除くね。

ちょっとした料理または加熱を行うなら
・クッカーとストーブと燃料類
(炭なんかもある

趣味の範囲として
・焚火台
・調理具としての好み

何かあった時のための備え
・タープ?

そのほか細々としたもの
・結露を拭きとるためのもの
・食器を洗うためのもの
・睡眠の際に補助するもの(アイマスク・耳栓・マスク・枕
・エチケット用品

細々としたものになるジャンルのものは結構必須だと思う。
とりあえずまた後で
買いなおしたほうがいいものは耳栓かなぁ、昔はもうちょっとすんなり入ってたと思うのだけども
もう少し細いやつが必要な感じ。
あとはコットになりそう、
インナーはなくてもいいかも。