|
山紫水明さん、ご丁寧なレスありがとうございます。
確かに判りにくかったですよね^^;
サンプルを示すとこんな感じになります。
●キーマクロ実行前の内容
1|hede_00 +
2|hede_02 |
3|hede_03 +-----検索する文字列
4|hede_07 | だけからなる行
5|hede_08 |
6|hede_10 +
7|
8|
9|
10| hede_00 = 0x00400000, /* start Address:0x00400000、length:0
x00000400 */ +
11| hede_01 = hede_00 + 0x00000400, /* start Address:0x00400400、length:0
x00000280 */ |
12| hede_02 = hede_01 + 0x00000280, /* start Address:0x00400680、length:0
x00000340 */ |
13| hede_03 = hede_02 + 0x00000340, /* start Address:0x004009c0、length:0
x00000300 */ |
14| hede_04 = hede_03 + 0x00000300, /* start Address:0x00400cc0、length:0
x00000180 */ |
15| hede_05 = hede_04 + 0x00000180, /* start Address:0x00400e40、length:0
x00000200 */ +--検索対象の行
16| hede_06 = hede_05 + 0x00000200, /* start Address:0x00401040、length:0
x00000680 */ |
17| hede_07 = hede_06 + 0x00000680, /* start Address:0x004016c0、length:0
x00000100 */ |
18| hede_08 = hede_07 + 0x00000100, /* start Address:0x004017c0、length:0
x00000a00 */ |
19| hede_09 = hede_08 + 0x00000a00, /* start Address:0x004021c0、length:0
x00000380 */ |
20| hede_10 = hede_09 + 0x00000380, /* start Address:0x00402540、length:0
x00000480 */ +
21|
22|
23|
24|[EOF]
ここの状態から、まずカーソルをファイルの先頭に持って行きます。
ここから、キーマクロの記録を開始します。
@行の先頭から「検索...」を実行して、検索文字列を取り込みつつ、その文字列で
下検索します。
A最初にヒットした行をカットします。
Bファイルの最後尾にカーソルを移動します。
C先程カットした1行をペーストします。
Dカーソルをファイルの先頭に移動します。
ここで記録終了です。
これを「検索する文字列だけからなる行」がなくなるまで、キーマクロの再生を繰り
返します。
予定していた結果と実際の結果は以下の通りです。
●予定していた、キーマクロ実行後の内容
1|
2|
3|
4| hede_01 = hede_00 + 0x00000400, /* start Address:0x00400400、length:0
x00000280 */
5| hede_04 = hede_03 + 0x00000300, /* start Address:0x00400cc0、length:0
x00000180 */
6| hede_05 = hede_04 + 0x00000180, /* start Address:0x00400e40、length:0
x00000200 */
7| hede_06 = hede_05 + 0x00000200, /* start Address:0x00401040、length:0
x00000680 */
8| hede_09 = hede_08 + 0x00000a00, /* start Address:0x004021c0、length:0
x00000380 */
9|
10|
11|
12| hede_00 = 0x00400000, /* start Address:0x00400000、length:0
x00000400 */
13| hede_02 = hede_01 + 0x00000280, /* start Address:0x00400680、length:0
x00000340 */
14| hede_03 = hede_02 + 0x00000340, /* start Address:0x004009c0、length:0
x00000300 */
15| hede_07 = hede_06 + 0x00000680, /* start Address:0x004016c0、length:0
x00000100 */
16| hede_08 = hede_07 + 0x00000100, /* start Address:0x004017c0、length:0
x00000a00 */
17| hede_10 = hede_09 + 0x00000380, /* start Address:0x00402540、length:0
x00000480 */
24|[EOF]
●実際の、キーマクロ実行後の結果
1|
2|
3|
4| hede_02 = hede_01 + 0x00000280, /* start Address:0x00400680、length:0
x00000340 */
5| hede_03 = hede_02 + 0x00000340, /* start Address:0x004009c0、length:0
x00000300 */
6| hede_04 = hede_03 + 0x00000300, /* start Address:0x00400cc0、length:0
x00000180 */
7| hede_05 = hede_04 + 0x00000180, /* start Address:0x00400e40、length:0
x00000200 */
8| hede_06 = hede_05 + 0x00000200, /* start Address:0x00401040、length:0
x00000680 */
9| hede_07 = hede_06 + 0x00000680, /* start Address:0x004016c0、length:0
x00000100 */
10| hede_08 = hede_07 + 0x00000100, /* start Address:0x004017c0、length:0
x00000a00 */
11| hede_09 = hede_08 + 0x00000a00, /* start Address:0x004021c0、length:0
x00000380 */
12| hede_10 = hede_09 + 0x00000380, /* start Address:0x00402540、length:0
x00000480 */
13|
14|
15|
16| hede_00 = 0x00400000, /* start Address:0x00400000、length:0
x00000400 */
17| hede_01 = hede_00 + 0x00000400, /* start Address:0x00400400、length:0
x00000280 */
24|[EOF]
実際に近いイメージで書いたら、折り返してしまいました^^;
おわかりいただけたでしょうか?
何をしたかったと言うと、
「検索対象の行」は、メモリのマッピングを定義しているところ全行で、その内構造
体として確保
しているものだけを別に選別して「検索する文字列だけからなる行」として、「検索
対象の行」から
検索し、上から順に抽出したかっただけなんです。
これまでも普通に行なえたように記憶しているのですが・・・、
いかがなものでしょう?
|
|