引数を設定する。
| Compressdata[0-16] | C length |
|---|---|
| A B C D E F G $ G E $ E D F $ M G |
17 |
| Plaindata[0-x] | P length |
| NULL | NULL |
初期値を設定します。
| C index |
P index |
Num | Start | Fitcnt |
|---|---|---|---|---|
| 0 | 0 |
ループの1回目
Compresseddata の文字が "$" でなければ上の処理を、"$" なら下の処理をします。
True ですので
Plaindata[0] に Compresseddata[0] をいれます。
Pindex を +1 します。
Cindex を +1 します。
| Compressdata[0-16] | C length |
|---|---|
| A B C D E F G $ G E $ E D F $ M G |
17 |
| Plaindata[0-x] | P length |
| A | NULL |
| C index |
P index |
Num | Start | Fitcnt |
|---|---|---|---|---|
| 0 | 0 | |||
| 1 | 1 |
ループの2~7回目
| Compressdata[0-16] | C length |
|---|---|
| A B C D E F G $ G E $ E D F $ M G |
17 |
| Plaindata[0-x] | P length |
| A B C D E F G | NULL |
| C index |
P index |
Num | Start | Fitcnt |
|---|---|---|---|---|
| 0 | 0 | |||
| 1 | 1 | |||
| 2 | 2 | |||
| 3 | 3 | |||
| 4 | 4 | |||
| 5 | 5 | |||
| 6 | 6 | |||
| 7 | 7 |
ループの8回目
Compresseddata[7] は "$" で判定が False なので下の処理をします。
Num に AlphabetToInt(Comresseddata[7+2])をいれます。(アルファベットの何番目の文字かを返すので「E」は「5」)
Start に AlphabetToInt(Comresseddata[7+1])をいれます。(アルファベットの何番目の文字かを返すので「G」は「7」)
Fitcnt を 0 に設定して、1づつ足しながら Num になるまでループをして、文字を1文字づつコピーします。
よって空欄「e」は「エ」になります。
Plaindata[7+0] に Plaindata[7-7+0] をいれます。
Plaindata[7+1] に Plaindata[7-7+1] をいれます。
Plaindata[7+2] に Plaindata[7-7+2] をいれます。
Plaindata[7+3] に Plaindata[7-7+3] をいれます。
Plaindata[7+4] に Plaindata[7-7+4] をいれます。
Pindex に Num を足します。
Cindexに 3 を足します。
| Compressdata[0-16] | C length |
|---|---|
| A B C D E F G $ G E $ E D F $ M G |
17 |
| Plaindata[0-x] | P length |
| A B C D E F G A B C D E | NULL |
| C index |
P index |
Num | Start | Fitcnt |
|---|---|---|---|---|
| 0 | 0 | |||
| 1 | 1 | |||
| 2 | 2 | |||
| 3 | 3 | |||
| 4 | 4 | |||
| 5 | 5 | |||
| 6 | 6 | |||
| 7 | 7 | 5 | 7 | |
| 10 | 12 |
ループの9回目
| Compressdata[0-16] | C length |
|---|---|
| A B C D E F G $ G E $ E D F $ M G |
17 |
| Plaindata[0-x] | P length |
| A B C D E F G A B C D E A B C D |
NULL |
| C index |
P index |
Num | Start | Fitcnt |
|---|---|---|---|---|
| 0 | 0 | |||
| 1 | 1 | |||
| 2 | 2 | |||
| 3 | 3 | |||
| 4 | 4 | |||
| 5 | 5 | |||
| 6 | 6 | |||
| 7 | 7 | 5 | 7 | |
| 10 | 12 | 4 | 5 | |
| 13 | 16 |
ループの10回目
| Compressdata[0-16] | C length |
|---|---|
| A B C D E F G $ G E $ E D F $ M G |
17 |
| Plaindata[0-x] | P length |
| A B C D E F G A B C D E A B C D F |
NULL |
| C index |
P index |
Num | Start | Fitcnt |
|---|---|---|---|---|
| 0 | 0 | |||
| 1 | 1 | |||
| 2 | 2 | |||
| 3 | 3 | |||
| 4 | 4 | |||
| 5 | 5 | |||
| 6 | 6 | |||
| 7 | 7 | 5 | 7 | |
| 10 | 12 | 4 | 5 | |
| 13 | 16 | |||
| 14 | 17 |
ループの11回目
| Compressdata[0-16] | C length |
|---|---|
| A B C D E F G $ G E $ E D F $ M G |
17 |
| Plaindata[0-x] | P length |
| A B C D E F G A B C D E A B C D F E F G A B C D |
NULL |
| C index |
P index |
Num | Start | Fitcnt |
|---|---|---|---|---|
| 0 | 0 | |||
| 1 | 1 | |||
| 2 | 2 | |||
| 3 | 3 | |||
| 4 | 4 | |||
| 5 | 5 | |||
| 6 | 6 | |||
| 7 | 7 | 5 | 7 | |
| 10 | 12 | 4 | 5 | |
| 13 | 16 | |||
| 14 | 17 | 7 | 13 | |
| 17 | 24 |
最後に Plength に 24 をいれて終了です。
| Compressdata[0-16] | C length |
|---|---|
| A B C D E F G $ G E $ E D F $ M G |
17 |
| Plaindata[0-23] | P length |
| A B C D E F G A B C D E A B C D F E F G A B C D |
24 |
「α」の部分はデータを解凍せずにそのまま1文字コピーする処理のことですので、空欄「f」は「カ」です。
ホームに戻るボタン↓