fork download
  1. # coding: Shift_JIS
  2.  
  3.  
  4. # 012345678901234567890
  5. indata = [
  6. "A001YAMADA 080",
  7. "B001TANAKA 065",
  8. "A010YAMAMOTO 079",
  9. "B004UETA 049",
  10. "C032ANDO 095",
  11. "D002KOMATSU 060"
  12. ]
  13.  
  14. #抽出条件例1
  15. # (Aクラス かつ 80点以上)または(Bクラス かつ 50点以上)または(Cクラス)を抽出
  16. #include_prm= "(0,1,CH,EQ,"A",AND,14,3,ZD,GE,80),OR,(0,1,CH,EQ,"B",AND,14,3,ZD,GE,50),OR,(0,1,CH,EQ,"C")"
  17.  
  18. outdata = Array.new
  19. indata.each{|s|
  20. if (s[0,1] == "A" && s[14,3].to_i >= 80) ||
  21. (s[0,1] == "B" && s[14,3].to_i >= 50) ||
  22. (s[0,1] == "C")
  23. outdata.push(s)
  24. end
  25. }
  26.  
  27. p outdata #=>["A001YAMADA 080", "B001TANAKA 065", "C032ANDOU 095"]
  28.  
  29.  
  30. #抽出条件例2
  31. # (Bクラス かつ 50点以上 かつ 名前1文字目が"T" ) または Cクラス を抽出
  32. #include_prm= "(0,1,CH,EQ,"B",AND,14,3,ZD,GE,50,AND,4,1,CH,EQ,"T"),OR,(0,1,CH,EQ,"C")"
  33.  
  34. outdata = Array.new
  35. indata.each{|s|
  36. if (s[0,1] == "B" && s[14,3].to_i >= 50 && s[4,1] == "T") ||
  37. (s[0,1] == "C")
  38. outdata.push(s)
  39. end
  40. }
  41.  
  42. p outdata #=>["B001TANAKA 065", "C032ANDOU 095"]
  43.  
  44. #抽出条件例3
  45. # (Aクラス または Bクラス) かつ 50点以上
  46. #include_prm= "(0,1,CH,EQ,"A",OR,0,1,CH,EQ,"B"),AND,(14,3,ZD,GE,50)"
  47.  
  48. outdata = Array.new
  49. indata.each{|s|
  50. if (s[0,1] == "A" || s[0,1] == "B") && (s[14,3].to_i >= 50)
  51. outdata.push(s)
  52. end
  53. }
  54.  
  55. p outdata #=>["A001YAMADA 080", "B001TANAKA 065", "A010YAMAMOTO 079"]
  56.  
  57.  
  58. #抽出条件例4
  59. # Aクラス
  60. #include_prm= "0,1,CH,EQ,"A""
  61.  
  62. outdata = Array.new
  63. indata.each{|s|
  64. if s[0,1] == "A"
  65. outdata.push(s)
  66. end
  67. }
  68.  
  69. p outdata #=>["A001YAMADA 080", "A010YAMAMOTO 079"]
  70.  
Success #stdin #stdout 0.02s 7448KB
stdin
Standard input is empty
stdout
["A001YAMADA    080", "B001TANAKA    065", "C032ANDO      095"]
["B001TANAKA    065", "C032ANDO      095"]
["A001YAMADA    080", "B001TANAKA    065", "A010YAMAMOTO  079"]
["A001YAMADA    080", "A010YAMAMOTO  079"]