回答編集履歴

8

修正

2017/03/20 18:26

投稿

退会済みユーザー
test CHANGED
@@ -284,6 +284,8 @@
284
284
 
285
285
  ```
286
286
 
287
+ -----------------------------
288
+
287
289
  [1]なぽりたん
288
290
 
289
291
  【ナポリタン】
@@ -302,6 +304,8 @@
302
304
 
303
305
 
304
306
 
307
+ -----------------------------
308
+
305
309
  [2]なぽりたん
306
310
 
307
311
  【ナポリタン】

7

修正

2017/03/20 18:26

投稿

退会済みユーザー
test CHANGED
@@ -270,7 +270,13 @@
270
270
 
271
271
 
272
272
 
273
- puts search(ARGV[0])
273
+ search(ARGV[0]).each do |s|
274
+
275
+ puts "-----------------------------"
276
+
277
+ puts s
278
+
279
+ end
274
280
 
275
281
  ```
276
282
 

6

修正

2017/03/20 18:24

投稿

退会済みユーザー
test CHANGED
@@ -254,8 +254,6 @@
254
254
 
255
255
  end
256
256
 
257
- answer = ""
258
-
259
257
  if flag == 1
260
258
 
261
259
  array << line.gsub("<-|->", "\n")

5

修正

2017/03/20 18:22

投稿

退会済みユーザー
test CHANGED
@@ -228,6 +228,96 @@
228
228
 
229
229
  ```
230
230
 
231
+ 改良版
232
+
233
+ ```Ruby
234
+
235
+ def search(word)
236
+
237
+ word = word.chomp.encode("windows-31J")
238
+
239
+ array = []
240
+
241
+ File.open("index.txt", "r") do |f|
242
+
243
+ f.each_line do |line|
244
+
245
+ flag = 0
246
+
247
+ line.gsub("<-|->", "\n").each_line.with_index do |element, i|
248
+
249
+ if i == 0 && element =~ /\A(#{"★".encode("windows-31J")}|\[\d{1}\])#{word}\Z/
250
+
251
+ flag = 1
252
+
253
+ end
254
+
255
+ end
256
+
257
+ answer = ""
258
+
259
+ if flag == 1
260
+
261
+ array << line.gsub("<-|->", "\n")
262
+
263
+ end
264
+
265
+ end
266
+
267
+ end
268
+
269
+ return array
270
+
271
+ end
272
+
273
+
274
+
275
+ puts search(ARGV[0])
276
+
277
+ ```
278
+
279
+ 実行結果例
280
+
281
+ ```
282
+
283
+ [1]なぽりたん
284
+
285
+ 【ナポリタン】
286
+
287
+ ◇[フ]napolitain
288
+
289
+ ○(1)[料]トマトを使ってイタリアの都市ナポリ風に味付けを
290
+
291
+ した料理。
292
+
293
+ ○(2)[料](特に)スパゲティ(spaghetti)をベーコン・マッシュ
294
+
295
+ ルームなどと炒(イタ)めて、トマトピューレをからめた料理。
296
+
297
+  参照⇒なぽれたーに(ナポレターニ)(2)
298
+
299
+
300
+
301
+ [2]なぽりたん
302
+
303
+ 【ナポリタン】
304
+
305
+ ◇[英]Neapolitan(ニーポリタン)
306
+
307
+ ○(1)[形]ナポリの。
308
+
309
+ ○(2)[名]ナポリの人。ナポリ出身の人・ナポリ在住の人。
310
+
311
+  イタリア語では男性を「ナポレターノ(napoletano)」、女性を
312
+
313
+ 「ナポレターナ(napoletana)」と呼ぶ。
314
+
315
+ ○(3)[食](neapolitan)⇒なぽりたんあいすくりーむ(ナポリタ
316
+
317
+ ンアイスクリーム,ナポリタン・アイスクリーム)
318
+
319
+ ```
320
+
231
321
  素人ながら考えてみました。
232
322
 
233
323
  文字列に特定の語が含まれるかだけで表示しているので微妙です。

4

修正

2017/03/20 18:20

投稿

退会済みユーザー
test CHANGED
@@ -250,7 +250,7 @@
250
250
 
251
251
  ```Ruby
252
252
 
253
- def index(path) #この処理の名前。特に意味はない。
253
+ def index(path) #この処理の名前。何でもよい。
254
254
 
255
255
  Dir.glob("#{path}/*").each do |folder| #indexフォルダの中にあるフォルダを全て取得して配列にする。できた配列から1つずつ要素を取り出してfolderに入れる。
256
256
 

3

修正

2017/03/20 15:36

投稿

退会済みユーザー
test CHANGED
@@ -245,3 +245,91 @@
245
245
  [StreamReader でファイルを 1 行ずつ読み込む](http://jeanne.wankuma.com/tips/csharp/stream/readline.html)
246
246
 
247
247
  [文字列に特定の文字列が含まれているかを調べるには?(Contains編)[2.0のみ、C#、VB]](http://www.atmarkit.co.jp/fdotnet/dotnettips/411contains/contains.html)
248
+
249
+ ##補足
250
+
251
+ ```Ruby
252
+
253
+ def index(path) #この処理の名前。特に意味はない。
254
+
255
+ Dir.glob("#{path}/*").each do |folder| #indexフォルダの中にあるフォルダを全て取得して配列にする。できた配列から1つずつ要素を取り出してfolderに入れる。
256
+
257
+ Dir.glob("#{folder}/*.txt").each do |file| #folderの中にあるテキストファイルを全て取得して配列にする。できた配列から1つずつ要素を取り出してfileに入れる。
258
+
259
+ array = [] #配列を用意。
260
+
261
+ File.open(file) do |f| #fileを開きます。
262
+
263
+ f.each_line do |line| #fileを一行ずつ読み込んでlineに入れる。
264
+
265
+ array << line #lineをarrayに入れる。(文字コードのエラーでsplitが使えなかったのでこんなことをしています。)
266
+
267
+ end
268
+
269
+ end
270
+
271
+ array.shift(5) #配列の前から5つまでの要素を削除(いらないので)
272
+
273
+ array.pop #配列の最後の要素を削除(いらないので)
274
+
275
+ str = "" #文字列を入れるのに使う。
276
+
277
+ array.each do |element| #arrayの中身を一つずつ取り出してelementに入れる。
278
+
279
+ element = element.gsub("\n", "<-|->") #elementの文字をgsubで置き換える。(改行文字を"<-|->"に置き換えている。この文字列に特に意味はない。)
280
+
281
+ unless element.include?("\t") #elementが改行文字を含まない場合は(unlessはifの逆の意味 「if a != 1」は「unless a == 1」と同じ意味)
282
+
283
+ element = "\n" + element #elementの先頭に改行文字を足す。(こうなる場合は項目の最初だけ)
284
+
285
+ end
286
+
287
+ str += element #strにelementを足す。
288
+
289
+ end
290
+
291
+ str.slice!(0) #strの先頭の改行文字を取り除く。
292
+
293
+ File.open("index.txt", "a") do |output| #index.txtを開く/作る
294
+
295
+ output.puts(str) #index.txtにstrの内容を書き込む。
296
+
297
+ end
298
+
299
+ end
300
+
301
+ end
302
+
303
+ end
304
+
305
+
306
+
307
+ =begin
308
+
309
+ 簡単に言うとindexフォルダの中にあるテキストファイルをすべて連結した
310
+
311
+ 1つのテキストファイルを作るということをしている。
312
+
313
+ =end
314
+
315
+ ```
316
+
317
+ 忘れていましたが、「def index」を使う前に
318
+
319
+ ```Ruby
320
+
321
+ Dir.glob("index/*").each do |folder|
322
+
323
+ Dir.glob("#{folder}/*").each do |file|
324
+
325
+ File.rename(file, "#{file}.txt")
326
+
327
+ end
328
+
329
+ end
330
+
331
+ ```
332
+
333
+ みたいな感じで「index」フォルダの中にある拡張子のない
334
+
335
+ テキストファイルに拡張子をつけるということをしていました。

2

修正

2017/03/20 15:32

投稿

退会済みユーザー
test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
  str = ""
30
30
 
31
- array.map! do |element|
31
+ array.each do |element|
32
32
 
33
33
  element = element.gsub("\n", "<-|->")
34
34
 
@@ -212,10 +212,10 @@
212
212
 
213
213
  }
214
214
 
215
+ sr.Close();
216
+
215
217
  Console.ReadKey();
216
218
 
217
- sr.Close();
218
-
219
219
 
220
220
 
221
221
  }

1

修正

2017/03/16 06:30

投稿

退会済みユーザー
test CHANGED
@@ -239,3 +239,9 @@
239
239
  1.「index」というフォルダを1つ作ってその中に解凍してできたフォルダをいれる。
240
240
 
241
241
  2.「index」の中にあるファイルの拡張子を全て「.txt」にする。
242
+
243
+ C#はこちらのサイトを参考にしました。
244
+
245
+ [StreamReader でファイルを 1 行ずつ読み込む](http://jeanne.wankuma.com/tips/csharp/stream/readline.html)
246
+
247
+ [文字列に特定の文字列が含まれているかを調べるには?(Contains編)[2.0のみ、C#、VB]](http://www.atmarkit.co.jp/fdotnet/dotnettips/411contains/contains.html)