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

回答編集履歴

8

修正

2017/03/20 18:26

投稿

退会済みユーザー
answer CHANGED
@@ -141,6 +141,7 @@
141
141
  ```
142
142
  実行結果例
143
143
  ```
144
+ -----------------------------
144
145
  [1]なぽりたん
145
146
  【ナポリタン】
146
147
  ◇[フ]napolitain
@@ -150,6 +151,7 @@
150
151
  ルームなどと炒(イタ)めて、トマトピューレをからめた料理。
151
152
   参照⇒なぽれたーに(ナポレターニ)(2)
152
153
 
154
+ -----------------------------
153
155
  [2]なぽりたん
154
156
  【ナポリタン】
155
157
  ◇[英]Neapolitan(ニーポリタン)

7

修正

2017/03/20 18:26

投稿

退会済みユーザー
answer CHANGED
@@ -134,7 +134,10 @@
134
134
  return array
135
135
  end
136
136
 
137
- puts search(ARGV[0])
137
+ search(ARGV[0]).each do |s|
138
+ puts "-----------------------------"
139
+ puts s
140
+ end
138
141
  ```
139
142
  実行結果例
140
143
  ```

6

修正

2017/03/20 18:24

投稿

退会済みユーザー
answer CHANGED
@@ -126,7 +126,6 @@
126
126
  flag = 1
127
127
  end
128
128
  end
129
- answer = ""
130
129
  if flag == 1
131
130
  array << line.gsub("<-|->", "\n")
132
131
  end

5

修正

2017/03/20 18:22

投稿

退会済みユーザー
answer CHANGED
@@ -113,6 +113,51 @@
113
113
  }
114
114
 
115
115
  ```
116
+ 改良版
117
+ ```Ruby
118
+ def search(word)
119
+ word = word.chomp.encode("windows-31J")
120
+ array = []
121
+ File.open("index.txt", "r") do |f|
122
+ f.each_line do |line|
123
+ flag = 0
124
+ line.gsub("<-|->", "\n").each_line.with_index do |element, i|
125
+ if i == 0 && element =~ /\A(#{"★".encode("windows-31J")}|\[\d{1}\])#{word}\Z/
126
+ flag = 1
127
+ end
128
+ end
129
+ answer = ""
130
+ if flag == 1
131
+ array << line.gsub("<-|->", "\n")
132
+ end
133
+ end
134
+ end
135
+ return array
136
+ end
137
+
138
+ puts search(ARGV[0])
139
+ ```
140
+ 実行結果例
141
+ ```
142
+ [1]なぽりたん
143
+ 【ナポリタン】
144
+ ◇[フ]napolitain
145
+ ○(1)[料]トマトを使ってイタリアの都市ナポリ風に味付けを
146
+ した料理。
147
+ ○(2)[料](特に)スパゲティ(spaghetti)をベーコン・マッシュ
148
+ ルームなどと炒(イタ)めて、トマトピューレをからめた料理。
149
+  参照⇒なぽれたーに(ナポレターニ)(2)
150
+
151
+ [2]なぽりたん
152
+ 【ナポリタン】
153
+ ◇[英]Neapolitan(ニーポリタン)
154
+ ○(1)[形]ナポリの。
155
+ ○(2)[名]ナポリの人。ナポリ出身の人・ナポリ在住の人。
156
+  イタリア語では男性を「ナポレターノ(napoletano)」、女性を
157
+ 「ナポレターナ(napoletana)」と呼ぶ。
158
+ ○(3)[食](neapolitan)⇒なぽりたんあいすくりーむ(ナポリタ
159
+ ンアイスクリーム,ナポリタン・アイスクリーム)
160
+ ```
116
161
  素人ながら考えてみました。
117
162
  文字列に特定の語が含まれるかだけで表示しているので微妙です。
118
163
  Lhaplusで解凍してRubyで加工しました。

4

修正

2017/03/20 18:20

投稿

退会済みユーザー
answer CHANGED
@@ -124,7 +124,7 @@
124
124
  [文字列に特定の文字列が含まれているかを調べるには?(Contains編)[2.0のみ、C#、VB]](http://www.atmarkit.co.jp/fdotnet/dotnettips/411contains/contains.html)
125
125
  ##補足
126
126
  ```Ruby
127
- def index(path) #この処理の名前。特に意味はない。
127
+ def index(path) #この処理の名前。何でもよい。
128
128
  Dir.glob("#{path}/*").each do |folder| #indexフォルダの中にあるフォルダを全て取得して配列にする。できた配列から1つずつ要素を取り出してfolderに入れる。
129
129
  Dir.glob("#{folder}/*.txt").each do |file| #folderの中にあるテキストファイルを全て取得して配列にする。できた配列から1つずつ要素を取り出してfileに入れる。
130
130
  array = [] #配列を用意。

3

修正

2017/03/20 15:36

投稿

退会済みユーザー
answer CHANGED
@@ -121,4 +121,48 @@
121
121
  2.「index」の中にあるファイルの拡張子を全て「.txt」にする。
122
122
  C#はこちらのサイトを参考にしました。
123
123
  [StreamReader でファイルを 1 行ずつ読み込む](http://jeanne.wankuma.com/tips/csharp/stream/readline.html)
124
- [文字列に特定の文字列が含まれているかを調べるには?(Contains編)[2.0のみ、C#、VB]](http://www.atmarkit.co.jp/fdotnet/dotnettips/411contains/contains.html)
124
+ [文字列に特定の文字列が含まれているかを調べるには?(Contains編)[2.0のみ、C#、VB]](http://www.atmarkit.co.jp/fdotnet/dotnettips/411contains/contains.html)
125
+ ##補足
126
+ ```Ruby
127
+ def index(path) #この処理の名前。特に意味はない。
128
+ Dir.glob("#{path}/*").each do |folder| #indexフォルダの中にあるフォルダを全て取得して配列にする。できた配列から1つずつ要素を取り出してfolderに入れる。
129
+ Dir.glob("#{folder}/*.txt").each do |file| #folderの中にあるテキストファイルを全て取得して配列にする。できた配列から1つずつ要素を取り出してfileに入れる。
130
+ array = [] #配列を用意。
131
+ File.open(file) do |f| #fileを開きます。
132
+ f.each_line do |line| #fileを一行ずつ読み込んでlineに入れる。
133
+ array << line #lineをarrayに入れる。(文字コードのエラーでsplitが使えなかったのでこんなことをしています。)
134
+ end
135
+ end
136
+ array.shift(5) #配列の前から5つまでの要素を削除(いらないので)
137
+ array.pop #配列の最後の要素を削除(いらないので)
138
+ str = "" #文字列を入れるのに使う。
139
+ array.each do |element| #arrayの中身を一つずつ取り出してelementに入れる。
140
+ element = element.gsub("\n", "<-|->") #elementの文字をgsubで置き換える。(改行文字を"<-|->"に置き換えている。この文字列に特に意味はない。)
141
+ unless element.include?("\t") #elementが改行文字を含まない場合は(unlessはifの逆の意味 「if a != 1」は「unless a == 1」と同じ意味)
142
+ element = "\n" + element #elementの先頭に改行文字を足す。(こうなる場合は項目の最初だけ)
143
+ end
144
+ str += element #strにelementを足す。
145
+ end
146
+ str.slice!(0) #strの先頭の改行文字を取り除く。
147
+ File.open("index.txt", "a") do |output| #index.txtを開く/作る
148
+ output.puts(str) #index.txtにstrの内容を書き込む。
149
+ end
150
+ end
151
+ end
152
+ end
153
+
154
+ =begin
155
+ 簡単に言うとindexフォルダの中にあるテキストファイルをすべて連結した
156
+ 1つのテキストファイルを作るということをしている。
157
+ =end
158
+ ```
159
+ 忘れていましたが、「def index」を使う前に
160
+ ```Ruby
161
+ Dir.glob("index/*").each do |folder|
162
+ Dir.glob("#{folder}/*").each do |file|
163
+ File.rename(file, "#{file}.txt")
164
+ end
165
+ end
166
+ ```
167
+ みたいな感じで「index」フォルダの中にある拡張子のない
168
+ テキストファイルに拡張子をつけるということをしていました。

2

修正

2017/03/20 15:32

投稿

退会済みユーザー
answer CHANGED
@@ -13,7 +13,7 @@
13
13
  array.shift(5)
14
14
  array.pop
15
15
  str = ""
16
- array.map! do |element|
16
+ array.each do |element|
17
17
  element = element.gsub("\n", "<-|->")
18
18
  unless element.include?("\t")
19
19
  element = "\n" + element
@@ -105,8 +105,8 @@
105
105
  Console.WriteLine(line);
106
106
  }
107
107
  }
108
+ sr.Close();
108
109
  Console.ReadKey();
109
- sr.Close();
110
110
 
111
111
  }
112
112
  }

1

修正

2017/03/16 06:30

投稿

退会済みユーザー
answer CHANGED
@@ -118,4 +118,7 @@
118
118
  Lhaplusで解凍してRubyで加工しました。
119
119
  加工の内容
120
120
  1.「index」というフォルダを1つ作ってその中に解凍してできたフォルダをいれる。
121
- 2.「index」の中にあるファイルの拡張子を全て「.txt」にする。
121
+ 2.「index」の中にあるファイルの拡張子を全て「.txt」にする。
122
+ C#はこちらのサイトを参考にしました。
123
+ [StreamReader でファイルを 1 行ずつ読み込む](http://jeanne.wankuma.com/tips/csharp/stream/readline.html)
124
+ [文字列に特定の文字列が含まれているかを調べるには?(Contains編)[2.0のみ、C#、VB]](http://www.atmarkit.co.jp/fdotnet/dotnettips/411contains/contains.html)