World: r3wp
[Core] Discuss core issues
older newer | first last |
Pekr 9-Jul-2007 [8427x3] | And I somehow wanted to have 'disk available in my copy-dir :-) Well, I can easily solve it via drive: disk and use drive global word in my copy-dir func. It is just that I was thinking if I can somehow magically bind to it :-) |
I need it vice versa - bind item in report to foreach item .... | |
but no problem, I can get it working other way, I was just curious ... | |
btiffin 9-Jul-2007 [8430x2] | That will bind report and item to the local foreach item. |
Well actually it binds print and item to the local item. | |
Pekr 9-Jul-2007 [8432] | ah .... I tried to look at it from the perspective of report function, and was stuck .... |
btiffin 9-Jul-2007 [8433] | Yeah bind is a little ummm, magically delicious. |
Pekr 9-Jul-2007 [8434] | I have weak USB port, and my flash disconnects from time to time. I am testing my copy-dir small script, and during disconnection it failed. I had following code there: attempt [ data: read/binary source write/binary target data ] Shouldn't attempt catch the error, even if I am in the middle of copying of file? |
btiffin 9-Jul-2007 [8435x2] | imho. yes it should. |
I've been a little curious about attempt... if not error? set/any 'value try :value [get/any 'value] Are there any conditions where the [get/any 'value] could fail and as it is outside the try cause an interpreter error trap? I don't know. | |
Ladislav 9-Jul-2007 [8437] | Pekr: "because I want to have clean interface to my copy-dir source target" - I may be dense, but what is "unclean" there? |
Pekr 9-Jul-2007 [8438x2] | got to go, but I don't want to send another parameter (drive letter) to the function ... |
So what I did was, that I defined one word inside foreach loop, which will be accessible from other place. It if sufficient, but what is "unclean" about it is, that I somehow start to think, that more strict way of defining variables is better than globals "floating around" :-) | |
Gabriele 9-Jul-2007 [8440x3] | petr, why is not the disk in the source argument? |
inside foreach and accessible somewhere else == global. the proper way to do it is a function argument. you can bind, but that does not seem clean to me (argument is clean). | |
and to me it looks like you have the argument already. | |
Pekr 10-Jul-2007 [8443] | 'attempt seems not to be able to catch file reading error. What am I doing wrong? Should I use if not error? try [] instead? |
Rebolek 10-Jul-2007 [8444] | What do you mean Pekr, it seems OK to me: >> attempt [read %no-file] == none |
Pekr 10-Jul-2007 [8445] | Rebolek - well, try to attempt [data: read/binary %some-larger-file] .... unplug your usb flash when file is being read .... |
Rebolek 10-Jul-2007 [8446] | Then buffer the reading. |
Pekr 10-Jul-2007 [8447] | yes, I know I could do that, but why read, as a native, is not catched when inside of attempt? |
Louis 10-Jul-2007 [8448] | Does anyone remember the command for converting a binary file to a string so it can be sent by email? |
Pekr 10-Jul-2007 [8449x3] | enbase/base? |
read/binary should be ok .... | |
or just - why to care? use send/attach ... | |
Louis 10-Jul-2007 [8452x2] | Pekr, enbase/base is not what I had in mind. It was a special command that did not need a refinement, if I recall correctly. |
I'm wanting to send a bunch of huge files to my son. I used this command awhile back to convert the files to text, then used compress to greatly shrink their size. Unfortunately I accidentally erased the source file for my script, and now can't remember the name of the command. | |
Graham 10-Jul-2007 [8454] | compress creates a binary file |
Louis 10-Jul-2007 [8455x2] | Graham, sorry for the delay in communucating. The electricity went off here, and with it the Internet. |
What I want to do in convert a binary file to a string. | |
Jerry 10-Jul-2007 [8457] | >> blk: [ delete none ] == [delete none] >> type? blk/1 == word! >> type? blk/2 == word! ; ; none is not of the none! type, unless it's been evaluated. ; none is so-called indirect value in the REBOL/CORE doc at ; http://www.rebol.com/docs/core23/rebolcore-4.html ; ; In http://www.rebol.net/r3blogs/0034.html, ; there is a so-called "Scant Evaluation" ; >> obj: construct [ n: none d: delete ] >> type? obj/d == word! >> type? obj/n == none! ; ; WHY obj/n IS NOT OF THE WORD! TYPE ??? ; The "Scant Evaluation" should not evaluate none here. |
Louis 10-Jul-2007 [8458] | in headers (and in the construct function) both word lookup and function evaluation are disabled, but set-word (assignment) is not. |
Jerry 10-Jul-2007 [8459] | Louis, I knew that. My question is ... why none (a word!, not a none!) is evaluated in this case. It should not. Notice that none is a word!. it has to be evaluated to become a none! That's why Carl called it "indirec value" in the REBOL/Core doc. |
Louis 10-Jul-2007 [8460x2] | I see what you mean. The actuality seems to contradict those documents. >> obj: construct [ n: none d: delete ] >> probe obj make object! [ n: none d: 'delete ] It seems that only potentially dangerous evaluation is prevented, and not all evaluation. Scant Evaluation: A minimal form of evaluation used for headers and other data blocks that do not allow any level of deep evaluation. Perhaps the evaluation of none is not considered "deep." |
Pekr, this is what I was looking for (I think): http://www.rebol.net/cookbook/recipes/0048.html This seems to be related to what you were trying to tell me and I just didn't realize it. Anyway thanks for your help! | |
Graham 10-Jul-2007 [8462x2] | http://www.rebol.net/cookbook/recipes/0026.html This recipe says that a binary file is being sent. I wonder how this works because the content type is url encoded, but there is not url encode function as a mezzanine by default. |
And i don't think that rebol supports octet stream as content type. | |
Louis 10-Jul-2007 [8464] | Jerry, I found this: The CONSTRUCT function will perform evaluation on the words TRUE, FALSE, NONE, ON, and OFF to produce their expected values. Literal words and paths will also be evaluated to produce their respective words and paths. For example: obj: construct [ a: true b: none c: 'word ] The obj/a value would be logical TRUE, obj/b would be NONE, and obj/c would be WORD. file:///C:/SDK/docs/changes.html |
Jerry 11-Jul-2007 [8465x5] | Louis, For TRUE, FALSE, NONE, I can understand ( however, it's not consistent ). But ... even ON and OFF? Why not YES and NO. ... |
>> obj: construct [ a: on b: yes ] >> probe obj make object! [ a: true b: 'yes ] | |
>> yes == true >> no == false >> on == true >> off == false | |
Nothing should be evaluated in CONSTRUCT, except SET-WORD!, which is an inconsistency. NONE, TRUE, FALSE, ON, and OFF are not SET-WORD!, but they are evaluated in CONSTRUCT, which is another inconsistency in an inconsistency. YES and NO are not evaluated in CONSTRUCT, which is yet another inconsistency in another inconsistency in an inconsistency. Inconsistency is no good. | |
I am not trying to be captious. I am trying to write some REBOL 3.0 tutorial in Chinese. For now, I am working on the evaluation part. That's why I am so paranoiac on this. : ) | |
Gabriele 11-Jul-2007 [8470x2] | Jerry, this is a "feature" of construct. the words NONE, TRUE and FALSE are converted to the respective values. it is done to allow construct to work correctly when /all is not used with mold. |
in general, it is much better to use mold/all instead, but i know construct can give you headaches if you really want to have a word in there. | |
Rebolek 11-Jul-2007 [8472] | Gabriele so why TRUE and ON are evaluated, while YES is not? |
Gabriele 11-Jul-2007 [8473x2] | bug? |
actually, i don't think on should be evaluated. mold would never produce it. | |
Gregg 12-Jul-2007 [8475] | I wish there *were* an option to mold it. Sometimes I really want to use on/off or yes/no in files. |
Henrik 16-Jul-2007 [8476] | my bitset creation skills are a bit rusty. how do I create a bitset that means 'anything but #" "' ? |
older newer | first last |