rwdfoldeditor 0.05 → 0.07

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. data/code/01rwdcore/01rwdcore.rb +5 -4
  2. data/code/01rwdcore/02helptexthashbegin.rb +14 -2
  3. data/code/01rwdcore/03helptexthash.rb +18 -20
  4. data/code/01rwdcore/jumplinkcommand.rb +1 -0
  5. data/code/01rwdcore/openhelpwindow.rb +7 -0
  6. data/code/01rwdcore/runhelpabout.rb +6 -1
  7. data/code/01rwdcore/runopentinkerdocument.rb +1 -1
  8. data/code/01rwdcore/selectiontab.rb +2 -0
  9. data/code/01rwdcore/setuphelpaboutoptions.rb +2 -0
  10. data/code/01rwdcore/setuptinkerdocuments.rb +1 -0
  11. data/code/01rwdcore/uploadreturns.rb +3 -0
  12. data/code/dd0viewphoto/dd0viewphoto.rb +2 -0
  13. data/code/superant.com.foldeditor/0uninstallapplet.rb +8 -1
  14. data/code/superant.com.foldeditor/addzipfiles.rb +45 -0
  15. data/code/superant.com.foldeditor/helptexthashload.rb +22 -0
  16. data/code/superant.com.foldeditor/launchfoldeditorurl.rb +5 -3
  17. data/code/superant.com.foldeditor/openhelpwindowrwdhyernote.rb +6 -2
  18. data/code/superant.com.rwdtinkerbackwindow/initiateapplets.rb +30 -102
  19. data/code/superant.com.rwdtinkerbackwindow/installgemapplet.rb +2 -0
  20. data/code/superant.com.rwdtinkerbackwindow/listgemzips.rb +2 -0
  21. data/code/superant.com.rwdtinkerbackwindow/listinstalledfiles.rb +3 -1
  22. data/code/superant.com.rwdtinkerbackwindow/listzips.rb +2 -0
  23. data/code/superant.com.rwdtinkerbackwindow/loadconfigurationrecord.rb +3 -1
  24. data/code/superant.com.rwdtinkerbackwindow/viewappletcontents.rb +1 -0
  25. data/code/superant.com.rwdtinkerbackwindow/viewlogfile.rb +8 -5
  26. data/code/zz0applicationend/zz0end.rb +2 -1
  27. data/configuration/rwdtinker.dist +3 -2
  28. data/configuration/rwdwfoldeditor.dist +7 -5
  29. data/configuration/tinkerwin2variables.dist +5 -9
  30. data/gui/tinkerbackwindows/superant.com.foldeditor/60zipfoldfiles.rwd +31 -0
  31. data/gui/tinkerbackwindows/superant.com.slideshow/10appletbegin.rwd +4 -0
  32. data/gui/tinkerbackwindows/superant.com.slideshow/11viewnamedata.rwd +19 -0
  33. data/gui/tinkerbackwindows/superant.com.slideshow/13listnamerecordfiles.rwd +21 -0
  34. data/gui/tinkerbackwindows/superant.com.slideshow/16editrecord.rwd +39 -0
  35. data/gui/tinkerbackwindows/superant.com.slideshow/17viewvcardrecord.rwd +32 -0
  36. data/gui/tinkerbackwindows/superant.com.slideshow/18contactutilities.rwd +34 -0
  37. data/gui/tinkerbackwindows/superant.com.slideshow/81jumplinkcommands.rwd +17 -0
  38. data/gui/tinkerbackwindows/{superant.com.foldwords/z9end.rwd → superant.com.slideshow/9end.rwd} +0 -0
  39. data/init.rb +61 -164
  40. data/installed/rwdwfoldeditor.inf +3 -8
  41. data/lang/en/rwdcore/en.po +182 -0
  42. data/lang/en/rwdfoldeditor/en.po +28 -0
  43. data/lang/es/rwdcore/es.po +175 -0
  44. data/lang/fr/rwdcore/fr.po +169 -0
  45. data/lang/hi/rwdcore/hi.po +173 -0
  46. data/lang/ja/rwdcore/ja.po +171 -0
  47. data/lang/nl/rwdcore/nl.po +169 -0
  48. data/lib/rwdtinker/rwdcodedir.rb +56 -0
  49. data/lib/rwdtinker/rwdguidir.rb +57 -0
  50. data/lib/rwdtinker/rwdlangdir.rb +60 -0
  51. data/lib/rwdtinker/rwdtinkertools.rb +2 -1
  52. data/rwd_files/HowTo_FoldEditor.txt +9 -0
  53. data/rwd_files/HowTo_Tinker.txt +24 -6
  54. data/rwd_files/Tinkerhelptexthash.txt +82 -0
  55. data/rwd_files/rubylinks.fld +6 -0
  56. data/rwd_files/rwdapplications.html +23 -1
  57. data/rwd_files/rwdfoldeditorhelpfiles.txt +17 -0
  58. data/tests/makedist-rwdwfoldeditor.rb +1 -1
  59. data/tests/makedist.rb +1 -1
  60. data/zips/rwdwfoldeditor-0.07.zip +0 -0
  61. data/zips/rwdwmovies-0.98.zip +0 -0
  62. data/zips/rwdwmpd-0.07.zip +0 -0
  63. data/zips/temp.rb +1 -0
  64. data/zips/tinkerbellw-0.03.zip +0 -0
  65. data/zips/{wrubyslippers-1.07.zip → wrubyslippers-1.08.zip} +0 -0
  66. metadata +33 -29
  67. data/code/01rwdcore/04helptextend.rb +0 -6
  68. data/code/superant.com.foldback/clearhttpview3.rb +0 -9
  69. data/code/superant.com.foldback/dictlookup.rb +0 -20
  70. data/code/superant.com.foldback/eliza.rb +0 -8
  71. data/code/superant.com.foldback/helptexthashrwdhypernote.rb +0 -19
  72. data/code/superant.com.foldback/listwordlookup.rb +0 -37
  73. data/code/superant.com.foldback/openhelpwindowrwdhyernote.rb +0 -13
  74. data/code/superant.com.foldback/runrwdshellwindow.rb +0 -12
  75. data/code/superant.com.foldeditor/helptexthashrwdhypernote.rb +0 -38
  76. data/code/superant.com.rwdtinkerbackwindow/helptexthashtinkerwin2.rb +0 -61
  77. data/gui/tinkerbackwindows/superant.com.foldwords/1appname.rwd +0 -4
  78. data/gui/tinkerbackwindows/superant.com.foldwords/1dictionary.rwd +0 -19
  79. data/gui/tinkerbackwindows/superant.com.foldwords/3ai.rwd +0 -22
  80. data/gui/tinkerbackwindows/superant.com.foldwords/4thesaurus.rwd +0 -36
  81. data/gui/tinkerbackwindows/superant.com.foldwords/77jumplinkcommands.rwd +0 -17
  82. data/lang/en/rwdcore/languagefile.rb +0 -59
  83. data/lang/es/rwdcore/languagefile-es.rb +0 -63
  84. data/lang/fr/rwdcore/languagefile.rb +0 -65
  85. data/lang/jp/rwdcore/languagefile.rb +0 -73
  86. data/lang/nl/rwdcore/languagefile.rb +0 -76
  87. data/lib/dict.rb +0 -438
  88. data/lib/oothesaurus.rb +0 -76
  89. data/zips/rwdwgutenberg-0.11.zip +0 -0
  90. data/zips/rwdwhypernote-0.15.zip +0 -0
@@ -1,8 +1,5 @@
1
1
  # Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
2
- # This application is a framework for writing programs from RubyWebDialogs
3
- # http://www.erikveen.dds.nl/rubywebdialogs/index.html
4
- # For more information about RwdTinker see http://www.rubyforge.net/projects/rwdapplications
5
- # This class is the top class for the RwdTinker application
2
+
6
3
 
7
4
  $DEBUG=false
8
5
  $VERBOSE=false
@@ -27,3 +24,7 @@ class RwdTinker < RWDialog
27
24
  "#{$rwdapplicationidentity}"
28
25
  end
29
26
 
27
+
28
+ # for original RWD work see: http://www.erikveen.dds.nl/rubywebdialogs/index.html
29
+ # For more information about RwdTinker see http://www.rubyforge.net/projects/rwdapplications
30
+ # This class is the top class for the RwdTinker application
@@ -1,4 +1,16 @@
1
-
1
+ # Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
2
2
 
3
- Helptext = Hash.new { |hh, kk| hh[kk] = "ERROR: Identificador de mensaje desconocido: #{kk.inspect}."; hh[kk] }
3
+ Helptext = Hash.new { |hh, kk| hh[kk] = "ERROR: Message-ID Unknown: #{kk.inspect}."; hh[kk] }
4
4
  helpmessage = {
5
+ :tinker_help => "rwdtinker is the core application for the
6
+ rwdapplications. "
7
+
8
+ }
9
+ helpmessage.each { |kk, vv| Helptext[kk] = vv }
10
+
11
+
12
+ =begin
13
+ this is to set up the help buttons
14
+ this uses a hash
15
+ =end
16
+
@@ -1,23 +1,21 @@
1
- # Help files for RwdTinker core
1
+ # this code loads the help text
2
2
 
3
-
4
- :general_help => "You can work with Applets: go to 'Selection tab', <br>
5
- On that back screen you will find:<br>
6
- List Applets: you can see and delete installed applets<br>
7
- List Zips: you can see lists of applets that you can install<br>
8
- Edit Configuration: You can view the rwdtinker configuration and change it<br>
9
- Diagnostic Tab: You can view the environments variables that rwdtinker is running with<br>
10
- ",
11
- :network_help => "Using over a Network: To serve the application over your local LAN,change the last line in the<br>
12
- init.rb file to something like:\n<br>
13
- RwdTinker.file(RWDFile).serve(8080, '-r' ? '.rwduids' : nil)\n<br>
14
- Then you should be able to login at: http://yourhostname:8080",
3
+
4
+ tmphelpfilename = "Tinkerhelptexthash.txt"
5
+ tmphelpdir = "rwd_files"
6
+
7
+ begin # exception trapped block
8
+
9
+
10
+ fileName = File.join(tmphelpdir ,tmphelpfilename )
11
+
12
+
13
+ fd = File.open(fileName,"r")
14
+ tmphelptext = fd.read
15
+ fd.close
16
+ eval tmphelptext
17
+ rescue SystemCallError, StandardError
18
+ $rwdtinkerlog.error "Tinkerbell help file load: system call error: "
19
+ end # exception rescue
15
20
 
16
-
17
- :documents_rwdtinker => "<b>Documents:
18
- <p>
19
21
 
20
- when you click on a document name, the document should pop up in a <br>
21
- browser window, or in another browser tab.</b>
22
- "
23
-
@@ -1,3 +1,4 @@
1
+ # Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
1
2
  # Bind message passing socket to rwdtinker application
2
3
 
3
4
  locationlink = {
@@ -1,4 +1,7 @@
1
+ # Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
1
2
  # this code is to call the help window
3
+ # for RwdTinker core
4
+
2
5
  def runhelpwindow
3
6
  $helptopicsarray = $helptopicsarray | ["applet_installation","applet_viewing","applet_tinkerbackeditconfiguration"]
4
7
 
@@ -29,3 +32,7 @@ def choosenewhelptopic(inffile)
29
32
  end
30
33
 
31
34
 
35
+
36
+ # Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
37
+ # this code is to call the help window
38
+ # for RwdTinker core
@@ -7,4 +7,9 @@
7
7
  @rwd_window = "rwdtinkerhelpwindow"
8
8
 
9
9
  end
10
-
10
+
11
+ =begin
12
+ This def runtinkerhelpabout
13
+ is to call the rwdtinkerhelpwindow
14
+ =end
15
+
@@ -1,7 +1,7 @@
1
1
  # open document for rwdtinker application
2
2
  def runopentinkerdocument
3
3
 
4
- tinkerdocumenturl = "http://localhost:7705/" + @a_tinkerdocumentinput
4
+ tinkerdocumenturl = "http://localhost:#{$port}/" + @a_tinkerdocumentinput
5
5
  Thread.new( tinkerdocumenturl){ |t| `#{Browser_Exe} #{tinkerdocumenturl}` }
6
6
  end
7
7
 
@@ -1,4 +1,6 @@
1
+ # Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
1
2
  # this code is to return to the window back from the help window
3
+
2
4
  def runselectiontab
3
5
 
4
6
 
@@ -1,4 +1,6 @@
1
+ # Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
1
2
  # help about option setup for rwdtinker application
3
+
2
4
  def setuphelpaboutoptions
3
5
 
4
6
  @rwd_window = "tinkerhelpabout"
@@ -1,3 +1,4 @@
1
+ # Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
1
2
  # Bind document names to rwdtinker document tab
2
3
  def setuptinkerdocuments
3
4
 
@@ -1,3 +1,6 @@
1
+ # Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
2
+ # return information to the author
3
+
1
4
  def uploadreturnsfile
2
5
  require 'net/ftp'
3
6
  BasicSocket.do_not_reverse_lookup = true
@@ -1,3 +1,5 @@
1
+ # Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
2
+
1
3
  def viewphoto
2
4
  @rwd_window = "photo"
3
5
  end
@@ -5,7 +5,14 @@ $tinkerhelpaboutarray.delete_if {|x| x == "RwdFoldEditor"}
5
5
  Helptext.delete_if {|key, value| key == :rwdfoldeditor_generalhelp}
6
6
  Helptext.delete_if {|key, value| key == :foldlinkview_help }
7
7
  Helptext.delete_if {|key, value| key == :foldlinkutility_help }
8
+ Helptext.delete_if {|key, value| key == :foldzipfile_help }
8
9
  $rwdjumplink.delete_if {|x| x == "RwdFoldEditor"}
9
- $rwdjumplink.delete_if {|x| x == "FoldBackWindow"}
10
+
11
+ if DeleteFoldEditorConfig
12
+
13
+ fileName = File.join("configuration","rwdwfoldeditor.cnf")
14
+ File.delete(fileName)
15
+ end
16
+ return true
10
17
 
11
18
  end
@@ -0,0 +1,45 @@
1
+ # info
2
+ def zipfoldeditorfile
3
+ require 'fileutils'
4
+ require 'lib/zip/zip'
5
+ begin # exception trapped block
6
+ nametext = "%s" % [File.basename(@a_viewfoldlinkfile,".fld")]
7
+
8
+
9
+ fullname = nametext +"-" + Time.now.localtime.strftime("%Y-%m-%d")+".zip"
10
+ fileName = @a_viewfoldlinkfile
11
+ foldfilename = File.join($rwdfoldeditor_directory, fileName)
12
+
13
+ foldfilehandle = File.open(foldfilename,"r")
14
+ tempfilecontents = " "
15
+
16
+ Zip::ZipOutputStream.open(fullname ) {
17
+ |zos|
18
+ zos.put_next_entry( nametext)
19
+ zos.puts "the fold file name is: #{@a_viewfoldlinkfile}"
20
+ zos.close
21
+ }
22
+
23
+ zipfilehandle = Zip::ZipFile.open(fullname)
24
+ foldfilehandle.each {|line|
25
+ if FileTest.exist?(line.strip)
26
+ zipfilehandle.add(File.basename(line).strip,line.strip)
27
+ end
28
+ }
29
+
30
+
31
+ zipfilehandle.close
32
+
33
+
34
+ foldfilehandle.close
35
+
36
+ @a_zipfoldeditorlinkfile = fullname
37
+
38
+ rescue
39
+ $rwdtinkerlog.error "zipfoldeditorfile: error - #{$!}"
40
+
41
+ end # exception rescue
42
+
43
+ end
44
+
45
+
@@ -0,0 +1,22 @@
1
+ # this code loads the help text
2
+
3
+
4
+ tmphelpfilename = "rwdfoldeditorhelpfiles.txt"
5
+ tmphelpdir = "rwd_files"
6
+
7
+ begin # exception trapped block
8
+
9
+
10
+ fileName = File.join(tmphelpdir ,tmphelpfilename )
11
+
12
+
13
+ fd = File.open(fileName,"r")
14
+ tmphelptext = fd.read
15
+ fd.close
16
+ eval tmphelptext
17
+
18
+ rescue SystemCallError, StandardError
19
+ $rwdtinkerlog.error "foldeditor help file load: system call error: "
20
+ end # exception rescue
21
+
22
+
@@ -1,8 +1,10 @@
1
1
  # launch the browser with a url
2
2
  def foldeditorlaunchurl
3
3
 
4
- url = "file://" + @a_viewfoldlink.to_s.strip
5
-
4
+ url1 = File.expand_path( @a_viewfoldlink.to_s.strip )
5
+
6
6
  url = "file://#{url1}"
7
+
8
+
7
9
  `#{$foldeditorbrowser} "#{url}"`
8
10
 
9
11
  end
@@ -11,7 +13,7 @@ def foldeditorlaunchhttp
11
13
 
12
14
  url = @a_viewfoldlink.to_s.strip
13
15
 
14
- $stderr.puts url
16
+
15
17
  `#{$foldeditorbrowser} "#{url}"`
16
18
 
17
19
  end
@@ -15,8 +15,12 @@ def runhelpwindowrwdfoldeditor
15
15
  $help_topic = "rwdfoldeditor_generalhelp"
16
16
  end
17
17
 
18
-
19
- $helptopicsarray = $helptopicsarray | ["rwdfoldeditor_generalhelp","foldlinkview_help","foldlinkutility_help"]
18
+ if @rwd_tab == "foldeditorzipslister"
19
+
20
+ $help_topic = "foldzipfile_help"
21
+ end
22
+
23
+ $helptopicsarray = $helptopicsarray | ["rwdfoldeditor_generalhelp","foldlinkview_help","foldlinkutility_help","foldzipfile_help"]
20
24
 
21
25
 
22
26
 
@@ -1,4 +1,3 @@
1
-
2
1
  #***********************************************************************
3
2
  #* Rwd/Tinker -- A Ruby program for the RudyWebDialog.
4
3
  #* Copyright (c) 2004 - 2005 by Steven Gibson. All Rights Reserved.
@@ -30,8 +29,6 @@ def initiateapplet(nametextlocal)
30
29
 
31
30
  $rwdtinkerlog.info "initiateapplet: starting config load with: #{nametextlocal}"
32
31
 
33
-
34
-
35
32
  Dir.chdir($progdir ) #changes the current working directory
36
33
 
37
34
  @confignew = "configuration/" + "#{nametextlocal}.cnf"
@@ -44,13 +41,10 @@ begin
44
41
 
45
42
  eval configfileload #load config file
46
43
 
47
-
48
-
49
44
  rescue
50
45
 
51
46
  $rwdtinkerlog.error "initiateapplet: error in initiateapplets - config load"
52
47
 
53
-
54
48
  debuginitiate += 1
55
49
  end
56
50
  $tempdoc = " "
@@ -58,80 +52,24 @@ $tempdoc = " "
58
52
  Dir.chdir($progdir) # change back to top program directory
59
53
 
60
54
  # build the English Language hash file from the parts
61
- languagehashvariable = 'Message.update('
62
- startlangdir = File.join(LangDir,"en")
63
- #get a list of the files and subdirectories on the starting directory only
64
- alanghash = Array.new(Dir[startlangdir].entries.sort)
65
- #loop through the list, ignore the files and add all new directories found
66
- alanghash.each do |x|
67
- #if a directory...
68
- if(test(?d,x))
69
- # add to the original list of directories
70
- @@tmproot = x + "/**"
71
- #adds the new ones to the array
72
- blanghash = Dir[@@tmproot].entries.sort
73
- blanghash.each do |x|
74
- if(test(?d,x))
75
- alanghash.push(x) #appends to the end of the array...
76
- end
77
- end
78
- end
79
- end
80
- alanghash.each do |x|
81
- #if it is a file...
82
- if(!test(?d,x))
83
- alanghash.delete(x)
84
- else #it is a directory...
85
- findfiles(x + "/**")
86
- end
87
- end
88
-
55
+ require 'lib/rwdtinker/rwdlangdir'
56
+
57
+ tempdoc = RwdtinkerTools.findlanguagefiles(LangDir,"en")
89
58
 
90
59
  #writes the contents of doc into the languagehashvariable
91
-
92
60
 
93
- languagehashvariable = languagehashvariable + $tempdoc + ' :rwdtinker => "Rwdtinker" ) ;'
61
+ languagehashvariable = tempdoc
94
62
 
95
63
  # END of en Lang building
96
64
  $tempdoc = " "
97
65
  Dir.chdir($progdir) # change back to top program directory
98
66
 
99
67
  # build the local Language hash file from the parts
100
- startlangdir = File.join(LangDir,$lang)
101
- #get a list of the files and subdirectories on the starting directory only
102
- alanghash = Array.new(Dir[startlangdir].entries.sort)
103
- #loop through the list, ignore the files and add all new directories found
104
- alanghash.each do |x|
105
- #if a directory...
106
- if(test(?d,x))
107
- # add to the original list of directories
108
- @@tmproot = x + "/**"
109
- #adds the new ones to the array
110
- blanghash = Dir[@@tmproot].entries.sort
111
- blanghash.each do |x|
112
- if(test(?d,x))
113
- alanghash.push(x) #appends to the end of the array...
114
- end
115
- end
116
- end
117
- end
118
- alanghash.each do |x|
119
- #if it is a file...
120
- if(!test(?d,x))
121
- alanghash.delete(x)
122
- else #it is a directory...
123
- findfiles(x + "/**")
124
- end
125
- end
68
+ tempdoc = RwdtinkerTools.findlanguagefiles(LangDir,$lang)
126
69
 
70
+ #writes the contents of doc into the variable
127
71
 
128
- #writes the contents of doc into the variable
129
-
130
- languagehashvariable = languagehashvariable + " Message.update(" + $tempdoc + ' :rwdtinker => "Rwdtinker" ) '
131
-
132
-
133
-
134
- $tempdoc = " "
72
+ languagehashvariable = languagehashvariable + tempdoc
135
73
 
136
74
  Dir.chdir($progdir) # change back to top program directory
137
75
 
@@ -142,44 +80,18 @@ $tempdoc = " "
142
80
  begin # error trap
143
81
 
144
82
  # build the actual GUI from the gui parts
145
- $tempdoc = " "
146
- #get a list of the files and subdirectories on the starting directory only
147
- a = Array.new(Dir[GuiDir].entries.sort)
148
- #loop through the list, ignore the files and add all new directories found
149
- a.each do |x|
150
- #if a directory...
151
- if(test(?d,x))
152
- #use this new dir find to add to the original list of directories
153
- @@root = x + "/**"
154
- #adds the new ones to the array
155
- b = Dir[@@root].entries.sort
156
- b.each do |x|
157
- if(test(?d,x))
158
- a.push(x) #appends to the end of the array...
159
- end
160
- end
161
- end
162
- end
163
- a.each do |x|
164
- #if it is a file...
165
- if(!test(?d,x))
166
- a.delete(x)
167
-
168
- else #it is a directory...
169
- loadguifile(x + "/**")
170
-
171
-
172
- end
173
- end
174
-
175
- $rwd_gui_tinker = $tempdoc
176
-
83
+ tempdoc = " "
84
+
85
+ require 'lib/rwdtinker/rwdguidir'
86
+
87
+ tempdoc = RwdtinkerTools.findguifiles(GuiDir)
88
+
89
+ $rwd_gui_tinker = tempdoc
177
90
 
178
91
  rescue
179
92
  $rwd_gui_tinker = tempguistorage # restore old gui
180
93
 
181
94
  $rwdtinkerlog.error "error in initiateapplets - gui building"
182
-
183
95
 
184
96
  debuginitiate += 1
185
97
  end
@@ -237,5 +149,21 @@ begin # error trap
237
149
  end
238
150
 
239
151
 
152
+ def findfiles(d)
153
+ a = Array.new(Dir[d].entries.sort)
154
+ #loop through and get the files names
155
+ a.each do |x|
156
+ #adjust the filters to the files you want to see...
157
+ if(!test(?d,x))
158
+ # only rwd files
159
+ if x =~ /rb|rwd|txt/
160
+ fileA=File.open("#{x}","r") #opens the file thats in fileName as read only
161
+ $tempdoc+=fileA.read #reads the file into the doc string
162
+ fileA.close
163
+ end
164
+ end
165
+ end
166
+ end
167
+
240
168
 
241
169