3: 2010-02-02 (火) 17:16:00 lina[6] [7] | 4: 2010-02-02 (火) 18:53:38 lina[6] [8] | ||
---|---|---|---|
Line 80: | Line 80: | ||
g01のapiでは、''一行読み込み''はない。すでにbuffer1内に全部入っちゃってる。つーことは・・・・~ | g01のapiでは、''一行読み込み''はない。すでにbuffer1内に全部入っちゃってる。つーことは・・・・~ | ||
改行コードを元に、自分で配列とかを作って割ってやらないといけない・・・のかな。例えば・・・ | 改行コードを元に、自分で配列とかを作って割ってやらないといけない・・・のかな。例えば・・・ | ||
+ | |||
+ | //まずは改行コードを一旦統一する | ||
+ | for ( i = 0; i < strlen(buffer1); i++){ | ||
+ | //とりあえずLFに統一するか・・・ | ||
+ | if (buffer1[i] == 0x0D) buffer1[i] = 0x0A; | ||
+ | //これで、CRが全部LFに置換されるはず。 | ||
+ | } | ||
+ | |||
+ | //先頭にある邪魔なLFなどを排除するため、開始地点を探っておく | ||
+ | int stppoint; stppoint = 0; | ||
+ | for ( i =0; i < strlen(buffer1); i++){ | ||
+ | if ( buffer1[i] != 0x0A ){ | ||
+ | stppoint = i; | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | //これでもし先頭にLFがあっても全て飛ばした位置から開始できる | ||
+ | |||
+ | //新しい配列変数を確保する。 | ||
+ | int ii2; ii2 = 0; | ||
+ | int lfs; lfs = 0; | ||
+ | unsigned char files[strlen(buffer1)+1]; | ||
+ | for ( i = stppoint; i < strlen(buffer1); i++){ | ||
+ | if ( buffer1[i] == 0x0A && buffer1[i-1] == 0x0A ){ | ||
+ | // 連続したLFだったらシカトして進める。 | ||
+ | } | ||
+ | else { | ||
+ | if ( buffer1[i] == 0x0A ){ | ||
+ | files[ii2] = 0; | ||
+ | lfs++; | ||
+ | } | ||
+ | else { | ||
+ | files[ii2] = buffer1[i]; | ||
+ | } | ||
+ | ii2++; | ||
+ | // LFを終端コードに置換 | ||
+ | } | ||
+ | } | ||
+ | //最後に終端コードを打っておく | ||
+ | files[ii2+1] = 0; | ||
+ | |||
+ | //これで、0によって区切られた配列になったはず。 | ||
+ | //files配列内の、0の位置を記憶する配列を用意する。 | ||
+ | //厳密には0の前。行頭というべきか・・・ | ||
+ | int zeropoint[lfs + 1]; | ||
+ | //↑の処理で先頭は必ず行頭になってるはずなので・・・ | ||
+ | zeropoint[0]=0; | ||
+ | int i3; i3 = 1; | ||
+ | for (i = 1; i < ii2 +1; i++){ | ||
+ | if (files[i] != 0 && files[i-1] == 0){ | ||
+ | //ここが行頭になるはず。位置を記憶 | ||
+ | zeropoint[i3] = i; | ||
+ | i3++; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | //これで、有効な行数はi3個。lfpointが行の先頭になっているはず。 | ||
+ | |||
+ | for ( i = 0; i < i3; i++){ | ||
+ | g01_putstr0(files + zeropoint[i] ); g01_putstr0("\n"); | ||
+ | } | ||
+ | |||
+ | |||
+ | これでどおぉぉぉだあぁぁぁ!! コンツクショー!!! (レベル低いですかそうですか・・・orz) |
(This host) = http://osask.net