teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

仕様等の追記

2020/01/17 01:40

投稿

natuyasumi
natuyasumi

スコア8

title CHANGED
File without changes
body CHANGED
@@ -1,34 +1,6 @@
1
1
  【cmdまたはpowershellで別ファイルを参照してテキスト内容を変換する方法】
2
2
 
3
- A.txtの内容 (メインファイル)
4
- object 1 ~
5
- object 2 ~
6
- object 31 ~
7
- object 44 ~
8
- object 55 ~
9
- -----------------
10
- B.txtの内容 (サブファイル)
11
- object 1 object 102
12
- object 2 object 99
13
- object 31 object 10
14
- object 55 object 501
15
- object 60 object 552
16
-
17
- 変換したい内容は、
18
- Aファイルの
19
- object 1をobject 102
20
- object 2をobject 99
21
- object 31をobject 10
22
- object 55をobject 501
23
- とBの内容でAの内容を置換したです。
24
-
25
- 実際は1000行ぐらいあります。
26
- テキストファイル内は記載している以外にも数字や文字列があります。
27
-
28
- 以上
29
- よろしくお願いいたします。
30
-
31
- <Aファイル>
3
+ <Aファイルサンプル
32
4
  Map From test
33
5
  Position (0.0520833,0.0520833) Units "in"
34
6
  Width 7.82292 Units "in" Height 4.5 Units "in"
@@ -71,8 +43,38 @@
71
43
  Name "iR-ADV C5550" Orientation Portrait Copies 1
72
44
  Papersize 9
73
45
 
46
+ --------------------------------------------------------------
47
+ <やりたいこと>
48
+ ファイル内の
49
+ "Object半角スペース任意の整数半角スペース"
50
+ の行を他のファイルを参照して変換することです。
74
51
 
52
+ 経緯としては、Layer1データを初期化(他アプリで)すると、
53
+ Objectの番号が参照ファイルのように変更されてしまいます。
54
+ 但し、AファイルのObjectの番号は手動で変更しなければならないので
55
+ 何かいい方法はないかと悩んでいるところでした。
56
+
75
- Aファイル
57
+ Aファイルの主な仕様>
58
+ 1.以下のような階層構造になっている
59
+ 階層は不定で、
60
+ SetMap
61
+ Layer1
62
+ Layey2
63
+ SetMap
64
+ Layer1
65
+ といったケースもあります。
66
+ "SetMap""Layer"のキーワードは固定です。
67
+
68
+ 2.置換対象は固定で"Object半角スペース任意の整数半角スペース"です。
69
+ Objectが置換対象外に記載される事はありません。
70
+ 大文字小文字区別なし、ダブルクォーテーション考慮なしでいいかと。
71
+
72
+ <置換内容を記載した参照ファイル(csv)の仕様について>
76
- Layer 1のObject1
73
+ Layer1,object 1,object 1
77
- Layer 2のObject1
74
+ Layer1,object 24,object 2
75
+ Layer1,object 15,object 3
76
+ Layer1,object 9,object 4
78
- 重複するので区別て置換します。
77
+ いったファイルを用意します。
78
+ ※変更は可能
79
+
80
+ Aと参照ファイルを掛け合わせるとAのObjectの数字部分が参照ファイルの内容に書き換わるといった内容です。

1

実ファイル記載

2020/01/17 01:40

投稿

natuyasumi
natuyasumi

スコア8

title CHANGED
File without changes
body CHANGED
@@ -26,4 +26,53 @@
26
26
  テキストファイル内は記載している以外にも数字や文字列があります。
27
27
 
28
28
  以上
29
- よろしくお願いいたします。
29
+ よろしくお願いいたします。
30
+
31
+ <Aファイル>
32
+ Map From test
33
+ Position (0.0520833,0.0520833) Units "in"
34
+ Width 7.82292 Units "in" Height 4.5 Units "in"
35
+ Set Window FrontWindow() ScrollBars On Autoscroll On Enhanced On Smooth Text Antialias Image High Vector Antialias
36
+ Set Map
37
+ CoordSys Earth Projection 8, 33, "m", 142.25, 44, 0.9999, 0, 0
38
+ Center (-34733.04786,-103594.5005)
39
+ Zoom 1385.090814 Units "m"
40
+ Preserve Zoom Display Zoom
41
+ Distance Units "m" Area Units "sq m" XY Units "m"
42
+ Distance Type Cartesian
43
+ Set Map
44
+ Layer 1
45
+ Display Global
46
+ Global Pen (12,2,255) Brush (1,16777215,16777215) Symbol (35,16776960,20) Line (25,65,16711680) Font ("MS Pゴシック",0,10,0)
47
+ Label Line Simple Position Center Font ("MS Pゴシック",0,10,0) Pen (1,2,0)
48
+ With
49
+ Parallel On Auto On Overlap Off Duplicates On Offset 2
50
+ Visibility On
51
+ Object 1 Line Simple Anchor
52
+ Object 24 Line Simple Anchor
53
+ Object 15 Line Simple Anchor
54
+ Object 9 Anchor
55
+
56
+ Set Map
57
+ Layer 2
58
+ Display Global
59
+ Global Pen (12,2,255) Brush (1,16777215,16777215) Symbol (35,16776960,20) Line (25,65,16711680) Font ("MS Pゴシック",0,10,0)
60
+ Label Line Simple Position Center Font ("MS Pゴシック",0,10,0) Pen (1,2,0)
61
+ With
62
+ Parallel On Auto On Overlap Off Duplicates On Offset 2
63
+ Visibility On
64
+ Object 1 Line Simple Anchor
65
+ Object 24 Line Simple Anchor
66
+ Object 15 Line Simple Anchor
67
+ Object 29 Anchor
68
+ Object 30 Anchor
69
+
70
+ Set Window FrontWindow() Printer
71
+ Name "iR-ADV C5550" Orientation Portrait Copies 1
72
+ Papersize 9
73
+
74
+
75
+ Aファイルは
76
+ Layer 1のObject1
77
+ Layer 2のObject1
78
+ と重複するので区別して置換します。