引数を設定する。
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」は「カ」です。
ホームに戻るボタン↓