AltME groups: search
Help · search scripts · search articles · search mailing listresults summary
world | hits |
r4wp | 158 |
r3wp | 1415 |
total: | 1573 |
results window for this page: [start: 801 end: 900]
world-name: r3wp
Group: All ... except covered in other channels [web-public] | ||
Brock: 13-Jan-2008 | It would be a good community project and would form the basis of a good tutorial though. ;-). Count me in if anyone wants to spearhead this. | |
Janeks: 30-Apr-2008 | Well, didn't found the group Security, so writing here. I am thinking of solution, where to user is sent e-mail with attached rebol file, that contains simple form with with some data, that user opens add some his data and push the button to send back. I like this solution because it works just on e-mail, that is very common to ordinary people, no needs to make additional installations except Rebol and that do not wory about new versions of forms, because it always is sent again. So the qestion that arises is it good from the point of security? The target systems for this solution would be the Windows. | |
Pekr: 1-Nov-2008 | Reichart - there is probably plenty of tools, I usually search DVD to AVI, and it is often also directly name of some tools. As for ripping, I use the combo form Slysoft - CloneDVD, AnyDVD | |
[unknown: 5]: 9-Dec-2008 | I only need to fill out a PDF form and don't trust these online editors as to what they are doing with the information. | |
Graham: 9-Dec-2008 | Acrobat reader can fill in a pdf form. | |
[unknown: 5]: 9-Dec-2008 | Thanks Pekr. Graham, I think the problem was that I figured out this PDF form didn't really have FIELDS to fill in. | |
[unknown: 5]: 2-Jan-2009 | Excellent that one is now calling Tretbase via CGI and updaing the database with the form inputs. | |
Graham: 7-Jan-2009 | I think the answer is to write a more relaxed form of load perhaps as a dialect in this situation. | |
Maxim: 18-May-2009 | technology is surprising sometimes... my DNS provider just sent me a mail to confirm my phone number.... - I click on the link in the mail, - a web page opens up with a form to verify my number (it was wrong!) - I click a little link that says... call now! - not 1 second after hitting the link, *my phone actually rings* and it spells out a magic number - the next web page that arrives after "call now!", has a field to enter the number! - press submit. - done! the most advanced captcha I've seen so far. this mixing of web and physical space is always a bit strange... is it not? | |
Chris: 21-May-2009 | Birmingham (Alabama) is even by US standards, a new city. Designed around the placement of a railroad junction where in the hills there was a confluence of iron ore, coal and limestone. It's a grid system as much as the hills flanking it permit. The hills - long ridges at the tippy-tail of the Appalachians - form a stark barrier between the town and the spidery suburbs. | |
shadwolf: 2-Aug-2011 | r3 GUI ? sleeping R3 sleeping RebCode ? who cares RebPlugin Webrowser? dead etc etc etc etc more the time pass and less form as Rebol ... And pekr this is your fault not only yours but you have a big responsability in it... | |
Pekr: 7-Mar-2012 | Yes, I know the form requests it ... do you think it is stored, and then used to register with altme.com? | |
Group: View ... discuss view related issues [web-public] | ||
Benjamin: 15-Aug-2005 | Hi there i recently had to do a job where i need to make use of read-net or read-thru because i needed to show a graph representing the amount of data beeing downloaded, but when it comes to write or save this is not possible because no callback is addmited, so i ask, is there a way to know how much data form a file has been uploaded or saved ? | |
JaimeVargas: 25-Aug-2005 | Hey that came form OSX! Nice. | |
Louis: 7-Nov-2005 | refresh: func [/local amount total][ ;Anton's function total: 0 foreach face out/pane [ if face/style = 'monfld [ ; only money fields amount: any [attempt [to-money face/text] $0.00] if any [ amount <> $0.00 not empty? face/text ][ face/text: form amount ] total: total + amount ] ] total-debits/text: form total show out ; updates all sub-faces at once ] | |
DideC: 8-Nov-2005 | refresh: has [amount credit debit][ debit: credit: 0 foreach face out/pane [ if find [credit debit] face/related [ ; only money fields amount: any [attempt [to-money face/text] $0.00] if any [amount <> $0.00 not empty? face/text] [face/text: form amount] if face/related = 'credit [credit: credit + amount] if face/related = 'debit [debit: debit + amount] ] ] total-debits/text: form debit total-credits/text: form credit show out ] view out: layout [ style c-field field [refresh] of 'credit style d-field c-field of 'debit style lab text 200 bold across lab "Credit" lab "Debit" return c-field d-field return c-field d-field return c-field d-field return lab "Total credit" lab "Total debit" return total-credits: field total-debits: field ] | |
Graham: 15-Nov-2005 | is this the only way form compress mold data ? | |
Volker: 15-Nov-2005 | you can use 'as-string instead of 'form. but i know no better way that "compress mold". | |
Volker: 16-Dec-2005 | s: copy"" repeat i 300[repend s [ i newline ]] help text-info view layout[ across ta: area s para[] slider 16x150 [scroll-para ta face] return info rate 1 feel[ engage: func[face a e][ set-face face either all[system/view/caret same? ta system/view/focal-face][ lines: parse/all copy/part ta/text system/view/caret "^/" form length? lines ][ "none" ] ]] ] | |
Robert: 2-Jan-2006 | Henrik, Cyphre once did a list-view for me. It has some really nice things in it. Take a look at http://www.robertmuench.de/projects/data-form for some docs on it. | |
Pekr: 2-Jan-2006 | yes, absolutly ... IIRC Robert suggested his form dialect to be accepted for VID, no? | |
Pekr: 25-Apr-2006 | why the amiga console was so powerfull and windows is so weak? it even can't use tab to form form commands ... without that feature I am agains using native windows console ... | |
Graham: 18-Jul-2006 | http://www.rebol.org/cgi-bin/cgiwrap/rebol/search.r?find=systray&form=yes | |
Group: I'm new ... Ask any question, and a helpful person will try to answer. [web-public] | ||
mhinson: 14-May-2009 | the port information is stored in a form like set port disable 2/2,2/4,2/6-8 set port disable 3/1-5,3/7 Then the same sort of thing for the names given to the ports. I want to extract it all into a standard format for analysis & comparison of IOS based information (done the IOS stuff ok) | |
mhinson: 15-May-2009 | Thanks for point this out, I see it is very important. I will try to use your new function passing once I get it working in a basic form. Thanks. | |
mhinson: 17-May-2009 | The R3 documentation shows this example for view view layout [ h2 "The time is currently:" h3 form now button "Close" [unview] ] But it does not work. Am I expecting too much from the documentation (sorry) Could someone give me a graphics example that works please to start me off. | |
mhinson: 22-May-2009 | It would be good if there were enough newbies to form their own huddle & ask each other the questions that the more experienced people find tedious to answer. It takes me a good while to work out very basic things, even if I have an overview of more complex areas. I have been learning Rebol for 2 months, it is the first serious attempt I have made at this sort of thing for over 20 years. | |
mhinson: 23-May-2009 | You are right Henrik, even the programming I have done years ago was based on learning a set of tricks that worked in the context I needed, then sticking to those tricks for everything. I can see that Rebol demands to be taken more seriously & I also appreciate the potential for "elegance and simplicity". I ride a unicycle & part of the appeal there is also the enjoyment of minimalism, no chain, no gears, no freewheel etc. My understanding of "the system of REBOL" is about 5% I think & I feel like I haven't grasped enough of it yet to make my understanding move forward efficiently. I am just at the start of passing data to functions & because REBOL seems to automatically typecast a lot of data, it has not been in my mind that I may have to do it manually in some cases, but now I know that, I still can't predict which cases yet. With the lit-path! and path! data passing I understand that the invalid path I want to test must not be evaluated before it gets into the ATTEMPT section of the code, so I would expect to need to pass the data in a literal form I suppose (or as a string perhaps). One of the conclusions I am drawing from the example given is that I can pass this thing called a literal (I don't fully grasp what that is yet) but receive it in the function as a path! so it would seem that the passing of data to the function is also doing a type conversion.. At that point I don't know how the path! is not evaluated enough to cause an error. If I search the core manual for "type conversion" it has only one mention, & not in this context. This is the sort of thing I do a lot to try & understand without asking too many questions, but my techniques must be flawed as I often fail to find anything relevant. (This isn't intended to be a question, just a picture of the muddle inside my mind). Now I will read Bindology & hope that my understanding will be transformed. Thanks again for all the help. | |
Gregg: 21-Jun-2009 | In my largest grammar, where incoming data may be malformed, I've found it invaluable to have the rule tracing built in, enabled by a flag. e.g. TSAFE-CHAR: [ (rule-trace "TSAFE-CHAR IN") copy =TSAFE-CHAR charset-21 | charset-22 | charset-23 | charset-24 | charset-25 | NON-US-ASCII (rule-trace "TSAFE-CHAR OUT") ] rule-trace: func [value /local rule-name action] [ rule-name: first parse value none ;print [tab rule-name tab found? find don't-trace rule-name] action: second parse value none if all [ any [ trace-rules? = true action = form trace-rules? ] not found? find don't-trace rule-name ][ val: attempt [mold get to word! join "=" rule-name] print ["===" value any [val ""]] ] ] Don't-trace allows you to turn off selected rules that may get called a lot. You could also set tracing levels if you wanted. | |
BrianH: 4-Jul-2009 | mhinson, MOLD and FORM never reference system/locale - REBOL syntax is English-based. | |
BrianH: 27-Jun-2010 | All programming languages are inherently limited. You have a limited number of built-in words and concepts. Because of this there will only be a limited number of concepts that can directly be supported by the language without combining words. To form other concepts, you need to combine words - aka composing functions. As more concepts are shared, the best combination of words to express them will be shared and refined as well. These combinations of words are idioms. Idioms are not a symptom of something which is not correct, quite the opposite. The ability to form idioms is a sign of a healthy language that is more powerful, able to handle more complex concepts. Idioms are always an inherently good thing. | |
Henrik: 9-Oct-2011 | todun, also, the structure of the program that you wrote hopefully shows that it requires a bit of discipline in organizing REBOL code, as it can be extremely free form, and it can be a little frustrating around generating VID code, because there is a lot going on in that type of code. So learning what the LAYOUT function does, (it simply generates a tree of objects, that's all), helps you to handle layout data with more confidence. I didn't write the console version through some kind of convention (other than basic formatting), but by knowing how to organize data sensibly in REBOL for the needs of the program and how simple it is to store and retrieve that from disk. There are dozens of ways that program could have been written, each equally as valid as the other. | |
Henrik: 9-Oct-2011 | view/title layout [button] form %my-file.r | |
Henrik: 9-Oct-2011 | the FORM converts the file! to a string!. | |
Henrik: 25-Oct-2011 | If you study some unloaded data: a: [now/precise now /precise] a/1 is of type path!, which can be reduced to calling NOW with the /PRECISE refinement. a/2 is of type word!, which can be reduced to calling NOW without any refinements. a/3 is of type refinement!, which doesn't reduce. In principle, that refinement could be an argument to the function. What types you can pass to a function is almost entirely free-form. >> reduce a == [25-Oct-2011/17:39:39.218+2:00 25-Oct-2011/17:39:39+2:00 /precise] | |
MagnussonC: 11-Nov-2011 | Is it possible to open a web page and fill in username, password and press send? It is a POST form. I'm thinking of using it to check if some (of my own) web pages work and it is possible to login. I've tried read URL. | |
MagnussonC: 11-Nov-2011 | About the example 8.6 on read/custom and post. I can't find any info about the arguments for post. There is no help for this word. Can I send several arguments at once or do I write one post line for each form field? | |
Group: !RebGUI ... A lightweight alternative to VID [web-public] | ||
Graham: 24-Jun-2006 | And to restore the form contents, in the do block of the layout, I go thru the layout and restore the values. | |
Graham: 24-Jun-2006 | this is an example form http://www.compkarori.com/emr/images/cvs.png | |
Graham: 24-Jun-2006 | I use the form to create text .. so it is not being saved to any database ... | |
Graham: 24-Jun-2006 | mostly for forms I store the form data as a block in the database | |
Graham: 24-Jun-2006 | and I don't want to save the form definition with the data | |
Graham: 24-Jun-2006 | easier to see the data in the form sometimes | |
Graham: 24-Jun-2006 | but for the example form .. as text | |
Ashley: 25-Jun-2006 | Safest way is to put a front-end on that precludes free-form string entry! ;) | |
Graham: 25-Jun-2006 | reset: func [ value /local type ][ foreach f face/parent-face/pane [ if f/type = 'group-box [ foreach widget f/pane [ type: form widget/type switch type [ "field" [ show-text widget copy "" ] "area" [show-text widget copy "" ] "edit-list" [ show-text widget copy "" ] "radio-group" [ widget/select-item value] ] ] ] ] ] | |
Graham: 25-Jun-2006 | ** Script Error: Cannot use path on none! value ** Where: reset ** Near: foreach f face/parent-face/pane [ if f/type = 'group-box [ foreach widget f/pane [ type: form wi... | |
Volker: 28-Jun-2006 | saving the whole form i guess. what vid can (should..) do with "set-face panel" | |
Graham: 30-Jun-2006 | so we can do show-text field form request-date, instead of show-text field form either none? d: request-date [ "" ][ d ] | |
[unknown: 9]: 13-Jul-2006 | Graham: "For me, function is beauty" As it is for me. But your statement here implies that this issue is superfluous in light of deeper issues, which mischaracterizes the problem. Form and function go hand in hand. In a GUI (which literally implies both form and function) subtle information is transmitted in the cross roads of the form and the function. Links, buttons, rounded buttons mean different things in different places. To marginalize it may be myopic. Anton: "I think that can't be good for people with vision problems. I say stick to the simple old ways." We are actually going to offer both, we are actively working on this. . | |
[unknown: 9]: 1-Aug-2006 | Ashley is making the same point I am, "end user" vs. programmer (or tech). Any time a programmer says "I do X all the time" all I think is that if "I can bottle the exact opposite of X I can make a billion dollars." Hence I wrote above "The exception is when people are dumping databases, and those are not using formulas, but rather are for working out data. This is done by programmers, not by users in general." Never-the-less, if the goal here is the goal, which is for technical people to do this, we all still need a solve, which is speed to do it. In Qtask we did part on the server, and part on the client. So, we let you sort columns locally, but would send all the data to the server. What we learned is: The server would send down all the data. Slow, but needed. Then JS would arrange everything into a table. Slow but needed. Then JS would sort. And we allowed 4 levels of sort… Slow, slow, slow, and turns out, not so needed. It turns out that with anything more than about 20 lines it was better in the long run to just sort form the server side. This is not to say this is how this will work where with Rebol. My point is more to the idea of playing with UI until you strike the right balance of speed and convenience. | |
Graham: 19-Sep-2006 | I can now use 'unview in a loop as a form of return :) | |
Louis: 18-Oct-2006 | Why won't this line display: label "Project:" text (form project-name/text) 80x5 | |
Louis: 18-Oct-2006 | Here is the code segment: do show-cc: make function! [] [ display "CRITICAL CHAIN To-Do List Maker Version 1.0.0" [ ;banner "0:00:00" rate 1 effect [gradient 0x1 0.0.150 0.0.50] 115x24 ;feel [engage: func [face act evt] [face/text: copy to-string round (session-time + (difference now/precise time-start)) show face]] tab-panel #HW data [ "Projects" [ label "Project Name:" project-name: field 144x5 label "Priority:" priority: drop-list 30 #W "1" data ["1" "2" "3" "4" "5" "6" "7" "8" "9" "10"] 10x5 return label "Objectives:" label " Exchange Rate" exchange-rate: field 20x5 return area 200x50 return label "Deliverables:" return area 200x50 return button "Save" [show-text ex-status "Saved"] button "Add" [show-text ex-status "Edit"] return ] "Tasks" [ ;(print [form project-name/text]) ;label "Project:" display (form project-name/text) 80x5 ;[show-color ex-dr1op-list to word! face/text] label "Project:" t-project-name: text (form project-name/text) 80x5 ;ex-drop-list: box 20x20 black label "Task Name:" t-name: field 79x5 return label "Description:" return t-description: area 200x50 return label "Vender/Work Place:" t-vw-place: drop-list "Black" data ["Grand Hardware" "Mega Mall" "Pasar Lima"] 64x5 label "Resources Needed:" t-resource: drop-list data ["Bus to Manado" "Louis A. Turk" "Caleb Turk" "Samuel Turk" "Compaq SR1520NX"] 64x5 return label "Total Hours Required:" t-hours: drop-list data [0.2 0.4 0.6 0.8 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0] 14x5 label "Cost:" t-cost: field return return button "Save" ] | |
Louis: 19-Oct-2006 | Ok, here it is: rebol [ title: "CRITICAL CHAIN To-Do List Maker" owner: "Louis A. Turk" rebol: none ] either exists? %session-time.txt [ ;for digital timer session-time: to-time read %session-time.txt ][ session-time: 0:00:00.000 write %session-time.txt session-time ] time-start: now/precise do %rebgui.r ;WHAT IS rebgui-ctx.r and where do I get it????????????? unless value? 'ctx-rebgui [ either exists? %rebgui-ctx.r [do %rebgui-ctx.r] [do %rebgui.r] ] set-colors tab-size: 120x55 fonts: reduce [font-sans-serif font-fixed font-serif "verdana"] if exists? %project-list.txt [project-list: read %project-list.txt][write %project-list.txt [] project-list: []] do show-cc: make function! [] [ display "CRITICAL CHAIN To-Do List Maker Version 1.0.0" [ ;HOW CAN THE FOLLOWING TWO LINES BE CONVERTED TO WORK WITH RebGUI???????? ;banner "0:00:00" rate 1 effect [gradient 0x1 0.0.150 0.0.50] 115x24 ;feel [engage: func [face act evt] [face/text: copy to-string round (session-time + (difference now/precise time-start)) show face]] tab-panel #HW data [ "Projects" [ label "Project Name:" project-name: field 144x5 label "Priority:" priority: drop-list 30 #W "1" data ["1" "2" "3" "4" "5" "6" "7" "8" "9" "10"] 10x5 return label "Objectives:" label " Exchange Rate" exchange-rate: field 20x5 return area 200x50 return label "Deliverables:" return area 200x50 return button "Save" [show-text ex-status "Saved"] button "Add" [show-text ex-status "Edit"] return ] "Tasks" [ ;WHY DOES THE FOLLOWING LINE ALWAYS DISPLAY A BLANK STRING????????? label "Project:" t-project-name: text (either <> "" project-name/text [(form project-name/text)]["ERROR: Project NAME field is empty."]) 80x5 label "Task Name:" t-name: field 79x5 return label "Description:" return t-description: area 200x50 return label "Vender/Work Place:" t-vw-place: drop-list "Mega Mall" data ["Grand Hardware" "Mega Mall" "Pasar Lima"] 63x5 label "Resources Needed:" t-resource: drop-list "Louis A. Turk" data ["Bus to Manado" "Louis A. Turk" "Caleb Turk" "Samuel Turk" "Compaq SR1520NX"] 63x5 return label "Total Hours Required:" t-hours: drop-list data [0.2 0.4 0.6 0.8 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0] 14x5 label "Cost:" t-cost: field return return button "Save" [] ] "Venders/Work Places" [ label "Vender/Work Place Name:" vw-place: field 152x5 return label "Street Address:" vw-street: field 171x5 return label "City:" vw-city: field 103x5 label "State" vw-state: field 38x5 label "Zip:" vw-zip: field 23x5 return label "Phone 1:" vw-phone1: field 29x5 label "Phone 2:" vw-phone2: field 29x5 label "Fax:" vw-fax: field 29x5 label "Email:" vw-email: field 48x5 return label "Contacts: " vw-contacts: field 181 return label "Notes:" return vw-notes: area 200x50 return button "Save" [] ] "Resources" [ label "Name:" r-name: field 100x5 return label "Cost:" r-cost: field 30x5 label "per" r-label: drop-list data ["Hour" "Day" "Week" "Month" "Year"] return [] ] "Make Lists/Charts" [ ] "How To" [ ] "Help" [ ] ] ] ] ;end show-cc do-events | |
Anton: 21-Oct-2006 | 2) "Why does the following line always display a blank string ?" t-project-name: text (either <> "" project-name/text [(form project-name/text)]["ERROR: Project NAME field is empty."]) 80x5 It is unclear to me what you want here exactly. The code in the parens is only evaluated once, at layout time. But project-name/text hasn't been set to anything at this time (other than maybe a default empty string.) Do you want the t-project-name/text to dynamically reflect the status of the project-name field ? That is, to update as you type ? But let's test with some shorter code: | |
Ashley: 16-Nov-2006 | I'm still open on the names, and will probably add a 'clear-input type function to round out the set. I chose the word 'input as both 'form and 'values implies a superset of input [values]. I also considered other action words such as read, write, load and save; but to my mind they are so well established in REBOL that they already have other meanings (e.g. load-form, like load-image, would imply loading a form from disk). 'set is OK except that the logical complement is 'unset. | |
Ashley: 18-Nov-2006 | Current system does not support more than one resize per axis (i.e. you can have one #W per x axis and one #Y per y axis). What you are asking for is a form of proportional resizing. | |
Ashley: 12-Dec-2006 | re: area hilight. Refer rebgui-edit.r ;added AREA too according to Robert's request -Cyphre hilight-on-focus: [area edit-list field spinner] caret-on-focus: [area drop-list edit-list field grid password spinner] action-on-enter: [drop-list edit-list field password spinner] All of these can be modified at runtime by reference to ctx-rebgui/edit/<block>/<word> ... the bigger question is what constitutes a reasonable set of default values. re: radio-group. Robert's changes forced labels to be strings. I'm pretty comfortable with this change as label expects a string argument and a radio-group is a collection of labels. On the other hand, the reason I changed drop-list (to form all values) is that it is not reasonable to expect an arbitrary list of values to all be strings (e.g. a list of postcodes), and/or to expect the developer to maintain their string state. I'm open to counter arguments on this one though. | |
Graham: 17-Feb-2007 | when I tried this using an empty string as the initial value in the example above, I got this ** Script Error: Expected one of: string! - not: time! ** Where: unfocus-action ** Near: face/text: form face/data: min max | |
Group: DevCon2005 ... DevCon 2005 [web-public] | ||
Pekr: 30-Sep-2005 | PhilB: then contact Kru, please, form the alliance to push on sound a little bit more - maybe Carl has some thoughts in that regard and maybe you can help Carl to investigate some possible solutions, dunno ... | |
Pekr: 30-Sep-2005 | .... yes, sometimes we take things for granted .... not letting ourselves to think more deeply - in fact - it is fantastic, that ppl from various place on Earth can talk one to each other in real-time (although in text form here) - 10 years back it was hardly possible, and I remember buying one product from Zachary, US, sending them my order via Fax, they sent me diskette by post, it came broken, so new fax, and I got new diskette with my DOS app I ordered in two months ... and I was happy :-) | |
Pekr: 3-Oct-2005 | So - I hope such plans exists at least in non-public form, that such plans are really implementaiton-concrete .... | |
DideC: 3-Oct-2005 | - Pekr : Carl hasprepared his presentation the night before he given it (so he was not in great form this particular day ;-) - About Internet connection : the scholl connection where we were is provided by an Italian telephon companie that ensure the security. Mario have tried more than a week before to have some opening on it. Lot of faxes, telephon calls and time lost. We were all disapointed of that, in or outside the Devcon. - Rebcode : it will be part of Rebol soon. You can even try it if you want (windows builds folder, the zip file). But it still in design stage. The form, the capabilities and implementation are sugest to changes. Carl has insisted on the fact that rebcode will be a bit tricky to use. Kind of assembler code. Not for newbies. - Rich text : Cyphre show us its work. Actually it's a .dll, like he did with AGG in the begining. It's not just a renderer : it's editable rich text. Dialect base like Carl's blog proposed. Nothing more to say, it's just a prototype, a proof of concept, like AGG was at its time. It use AGG as engine, so font can be aliased or not. | |
Gabriele: 4-Oct-2005 | Petr: IRC would have *NOT* worked form there. it's not our fault. we only had port 80 outgoing. and Mario even managed to make people use altme... and trust me, he was busy. | |
[unknown: 9]: 18-Oct-2005 | Is there a way to get all the pictures as a Zip? And did I ever upload all my pics form the conf? I have been so busy I don't remember. | |
Group: Rebol School ... Rebol School [web-public] | ||
Geomol: 23-Feb-2009 | Well, array just give a block. Maybe you didn't want a string but an issue: >> to issue! array/initial 5 "abc" == #abcabcabcabcabc or something else. Strings are just one form of series. | |
Henrik: 24-Feb-2009 | Gabriele once wrote a function for this. I can't remember if it's called pad-decimal or form-decimal. | |
PatrickP61: 12-Mar-2009 | I'm playing around with FORM-DATE.R from the rebol.org site and I'm having trouble with a couple of commands I am trying to define a new date-code of lowercase h to return the hour in regular time, not military time such that 13-24 would be 1-12. ie #"h" [PICK [ time/hour ( time/hour - 12 ) ] time/hour > 12 ] <-- pick the value of time/hour to be between 1-12 but when I try an example such as: am: does [form-date 2009-01-02/03:04:05 "%y%m%d %h:%M%P"] <-- I get "090102 time/hour - 12:04AM" hours is realy 03 pm: does [form-date 2009-11-12/13:14:15 "%y%m%d %h:%M%P"] <-- I get "091112 time/hour:14PM" how do I get r3 to evaluate the time/hour - 12 or the time/hour value before it picks the results? | |
Oldes: 7-Apr-2009 | I'm ussing: attempt: func [value][ either error? set/any 'value try :value [ print parse-error disarm value none ] [get/any 'value] ] parse-error: func [ error [object!] /local type id arg1 arg2 arg3 wh ][ type: error/type id: error/id wh: mold get/any in error 'where either any [ unset? get/any in error 'arg1 unset? get/any in error 'arg2 unset? get/any in error 'arg3 ] [ arg1: arg2: arg3: "(missing value)" ] [ arg1: error/arg1 arg2: error/arg2 arg3: error/arg3 ] rejoin ["** " system/error/:type/type ": " reduce either block? system/error/:type/:id [ bind to-block system/error/:type/:id 'arg1 ] [ form system/error/:type/:id ] newline reform ["** Where: " wh newline "** Near: " mold error/near newline] ] ] | |
Pekr: 21-Apr-2009 | Anton - what form is TCC in? Few dlls? Executable? You could probably create "new REBOL" using SDK - simply bundle it into new exe with all stuff you need (IIRC SDK allows loading internal binary stuff). Or pack it into one file, give it plugin suffix :-) Then normally read and decompress it, then load it :-) | |
PatrickP61: 15-Jul-2009 | Asking for help on a formatting problem I have the following block that cotains some rebol code which I wish to print on the console and then execute the code: >> code-blk: [print "ok"] == [print "ok"] <-- assigned a code block just fine >> do code-blk == ok <-- looks good so far >> print code-blk == ok <-- Nope that isn't what I was looking for, but I understand why since it is like print the results of print "ok" >> print form code-blk == print ok <-- getting closer to what I desire, but the quotes are missing >> print mold form code-blk == "print ok" <-- not what I desired -- I want the original code block to be printed as print "ok" with the quotes Any ideas on how to fix this? | |
Ashley: 6-Aug-2009 | Here's a QAD I use: >> i: 1 == 1 >> join skip "0000" length? form i i == "0001" | |
Graham: 6-Aug-2009 | next form 10000 + now/month == "0008" | |
Graham: 6-Aug-2009 | and for that mailing list question ... on how to format yyyymmdd rejoin [ now/year next form 100 + now/month next form 100 + now/day ] == "20090806" | |
Gregg: 7-Aug-2009 | Doesn't measure that much faster here, and you have to add the FORM call as well. Still nice. :-) If performance is important, you can do two things: 1) cache NOW, 2) cache the whole result once a day. | |
Graham: 7-Aug-2009 | I ran 10,000 iterations with 'form and found it was 5x faster :) | |
Graham: 7-Aug-2009 | BTW, you can use the same trick for those pesky apis that want leading zeros for time >> time: now/time - 5:00 == 6:29:02 >> next form 100:00 + time == "06:29:02" | |
PatrickP61: 7-Mar-2010 | I'm an old mainframe cobol kind of guy, and I trying to setup something that resembles the perform statement: debug?: on perform: funct [paragraph] [ if debug? [print form ["para " paragraph]] ;<-- when debug? is on, the paragraph name will be printed before it is "performed" do paragraph ] a000-mainline: perform b100-init perform b200-term b100-init: print "init" b200-term: print "term" perform a000-mainline halt expected results: para a000-mainline para b100-init init para b200-term term halt my intention is to define each paragraph and then "perform" them. But I haven't figured it out yet. | |
BrianH: 7-Mar-2010 | The FORM is unnecessary. | |
Steeve: 8-Mar-2010 | >> to-date form reverse parse copy/part at "*[YY-MM-DD=03-06-30]*" 12 8 "-" == 30-Jun-2003 | |
PatrickP61: 8-Mar-2010 | to-date form parse copy/part at "*[YY-MM-DD=03-06-30]*" 12 8 none This gives the same results as above but the year is wrong 2030 intead of 2003. | |
BrianH: 8-Mar-2010 | Break it down: >> at "*[YY-MM-DD=03-06-30]*" 12 == "03-06-30]*" >> copy/part at "*[YY-MM-DD=03-06-30]*" 12 8 == "03-06-30" >> parse copy/part at "*[YY-MM-DD=03-06-30]*" 12 8 "-" == ["03" "06" "30"] >> reverse parse copy/part at "*[YY-MM-DD=03-06-30]*" 12 8 "-" == ["30" "06" "03"] >> form reverse parse copy/part at "*[YY-MM-DD=03-06-30]*" 12 8 "-" == "30 06 03" That's as far as I got on R3; I don't have R2 yet on this computer. | |
BrianH: 8-Mar-2010 | >> to-date map-each x reverse parse head insert copy/part at "*[YY-MM-DD=03-06-30]*" 12 8 "20" "-" [to-integer x] == 30-Jun-2003 >> to-date replace/all form reverse parse copy/part at "*[YY-MM-DD=03-06-30]*" 12 8 "-" " " "-" == 30-Jun-2003 | |
BrianH: 8-Mar-2010 | And profile them to see which is better: >> dp [to-date map-each x reverse parse head insert copy/part at "*[YY-MM-DD=03-06-30]*" 12 8 "20" "-" [to-integer x]] == make object! [ timer: 0:00:00.000023 evals: 43 eval-natives: 14 eval-functions: 5 series-made: 11 series-freed: 0 series-expanded: 0 series-bytes: 731 series-recycled: 0 made-blocks: 6 made-objects: 0 recycles: 0 ] >> dp [to-date replace/all form reverse parse copy/part at "*[YY-MM-DD=03-06-30]*" 12 8 "-" " " "-"] == make object! [ timer: 0:00:00.00004 evals: 103 eval-natives: 30 eval-functions: 5 series-made: 8 series-freed: 0 series-expanded: 0 series-bytes: 530 series-recycled: 0 made-blocks: 2 made-objects: 0 recycles: 0 ] | |
Steeve: 9-Mar-2010 | with pattern matching >> attempt [to-date replace/all form reverse parse copy/part find/tail "*[YY-MM-DD=03-06-30]*" "YY-MM-DD=" 8 "-" " " "-"] == 30-Jun-2003 | |
florin: 29-May-2010 | It's so different and so 'free form'. I'm not interested in the GUI part right now - I just want to learn something new. | |
Oldes: 1-Jun-2010 | I've reuploaded the file so at least this test works: write/binary %test.msg page-mailer/form-msg page-mailer/make-html-mail/text {ahoj <img src="path-to-your-image.jpg">} {plain version} Which produces MSG file which you can examine to see, how it should looks like. For example like this one: http://box.lebeda.ws/~hmm/rebol/test.msg | |
Claude: 1-Jun-2010 | REBOL[] send: func [ "Send a message to an address (or block of addresses)" ;Note - will also be used with REBOL protocol later. address [email! block!] "An address or block of addresses" message "Text of message. First line is subject." /only "Send only one message to multiple addresses" /header "Supply your own custom header" header-obj [object!] "The header to use" /attach "Attach file, files, or [.. [filename data]]" files [file! block!] "The files to attach to the message" /subject "Set the subject of the message" subj "The subject line" /show "Show all recipients in the TO field" /local smtp-port boundary make-boundary tmp from ][ make-boundary: does [] if file? files [files: reduce [files]] ; make it a block if email? address [address: reduce [address]] ; make it a block message: either string? message [copy message] [mold message] if not header [ ; Clone system default header header-obj: make system/standard/email [ subject: any [subj copy/part message any [find message newline 50]] ] ] if subject [header-obj/subject: subj] either none? header-obj/from [ if none? header-obj/from: from: system/user/email [net-error "Email header not set: no from address"] if all [string? system/user/name not empty? system/user/name][ header-obj/from: rejoin [system/user/name " <" from ">"] ] ][ from: header-obj/from ] if none? header-obj/to [ header-obj/to: tmp: make string! 20 if show [ foreach email address [repend tmp [email ", "]] clear back back tail tmp ] ] if none? header-obj/date [header-obj/date: to-idate now] if attach [ boundary: rejoin ["--__REBOL--" system/product "--" system/version "--" checksum form now/precise "__"] header-obj/MIME-Version: "1.0" header-obj/content-type: join "multipart/mixed; boundary=" [{"} skip boundary 2 {"}] message: build-attach-body message files boundary ] ;-- Send as an SMTP batch or individually addressed: smtp-port: open [scheme: 'esmtp] either only [ ; Only one message to multiple addrs address: copy address ; remove non-email values remove-each value address [not email? :value] message: head insert insert tail net-utils/export header-obj newline message insert smtp-port reduce [from address message] ] [ foreach addr address [ if email? addr [ if not show [insert clear header-obj/to addr] tmp: head insert insert tail net-utils/export header-obj newline message insert smtp-port reduce [from reduce [addr] tmp] ] ] ] close smtp-port ] resend: func [ "Relay a message" to from message /local smtp-port ][ smtp-port: open [scheme: 'esmtp] insert smtp-port reduce [from reduce [to] message] close smtp-port ] build-attach-body: function [ {Return an email body with attached files.} body [string!] {The message body} files [block!] {List of files to send [%file1.r [%file2.r "data"]]} boundary [string!] {The boundary divider} ][ make-mime-header break-lines file val ][ make-mime-header: func [file] [ net-utils/export context [ Content-Type: join {application/octet-stream; name="} [file {"}] Content-Transfer-Encoding: "base64" Content-Disposition: join {attachment; filename="} [file {"^/}] ] ] break-lines: func [mesg data /at num] [ num: any [num 72] while [not tail? data] [ append mesg join copy/part data num #"^/" data: skip data num ] mesg ] if not empty? files [ insert body reduce [boundary "^/Content-type: text/html^/^/"] append body "^/^/" if not parse files [ some [ (file: none) [ set file file! (val: read/binary file) | into [ set file file! set val skip ;anything allowed to end ] ] ( if file [ repend body [ boundary "^/" make-mime-header any [find/last/tail file #"/" file] ] val: either any-string? val [val] [mold :val] break-lines body enbase val ] ) ] ] [net-error "Cannot parse file list."] append body join boundary "--^/" ] body ] | |
Ladislav: 9-Jul-2011 | 'who f* cares' - I thought you did: 'why is , not valid word?', but taking the 'who f* cares' into account, I just have to admit that I was fooled by the form understanding it as a question | |
Endo: 11-Aug-2011 | I'm using this function to do that: merge: func [b [block!] /local t r] [parse b [some [t: any-type! (append r: "" join form first t either tail? next t [""][","])]] r] >> merge ["a" 5 *] == "a,5,*a,5,*" | |
Endo: 11-Aug-2011 | Oops! Sorry small mistake, here is the correct one :) merge: func [b [block!] /local t r] [r: copy "" parse b [some [t: any-type! (append r join form first t either tail? next t [""][","])]] r] | |
Gregg: 11-Aug-2011 | ; A dialected version of this could be very flexible; allowing more ; than just fixed size groupings. ; This could also be done by adding a /SKIP refinement to INSERT. delimit: func [ ;[throw catch] "Insert a delimiter between series values." series [series!] "Series to delimit. Will be modified." value "The delimiter to insert between items." /skip ;<-- be sure to use system/words/skip in this func size [integer!] "The number of items between delimiters. Default is 1." ][ ; Hmmm, I wonder if we could extend the function spec dialect ; to include constraints like this declaratively? And should ; we trap the arg like this, or just use MAX to make sure we ; have a positive value? I think I'll do the latter for now, ; but leave this here as a comment. ;if all [size not positive? size] [ ; throw make error! join [script invalid-arg] size ;] ; By default, delimiters go between each item. ; MAX catches zero and negative sizes. size: max 1 any [size 1] ; If we aren't going to insert any delimiters, just return the series. ; This check means FORSKIP should always give us a series result, ; rather than NONE, so we can safely inline HEAD with it. if size + 1 > length? series [return series] ; We don't want a delimiter at the beginning. series: system/words/skip series size ; Use size+n because we're inserting a delimiter on each pass, ; and need to skip over that as well. If we're inserting a ; series into a string, we have to skip the length of that ; series. i.e. the delimiter value is more than a single item ; we need to skip. size: size + any [ all [list? series 0] ; lists behave differently; no need to skip dlm. all [any-string? series series? value length? value] all [any-string? series length? form value] 1 ] head forskip series size [insert/only series value] ] | |
sqlab: 12-Aug-2011 | since many years I use this function from Andrew from time to time rejoin: func [ "Reduces and joins a block of values." block [block!] "Values to reduce and join" /with string; [ string! ] ][ if empty? block: reduce block [return block] if with [ block: next block forskip block 2 [ insert block string ] ] block: head block append either series? first block [copy first block] [ form first block] next block ] | |
shadwolf: 21-Aug-2011 | look mnarco sionce 2004 try to tell sunanda that the rebol script header in rebol.org could be done with a form you know html <form> </form> and since 2004 there is noooooooooooooo way to make thsi all mighty guru understand thus !!! | |
shadwolf: 21-Aug-2011 | my comment to rebol,org sunanda in 2004 was obvious can't you do a form for the very heavy header submision ? ahnd in 2011 it's not done ... | |
Marco: 18-Jan-2012 | The function by Nick is a little slow since I have a lot of numbers. This is faster but not very fast: format-decimal: func [x /local e q] [ x: form x if find x "E-" [ e: to-integer next next q: find x "E-" clear q remove find x "." if #"-" = first x [x: next x] insert/dup x "0" e insert next x "." ] head x ] The idea from Ladislav is nice but I would like most a more "rebol" solution. | |
Group: !REBOL3-OLD1 ... [web-public] | ||
Pekr: 25-May-2007 | btiffin - does it need to be three letter acronym? :-) and btw - we should also follow the praxe, which means - maybe such a thing needs some spontaneous way to form itself. Currently we are few, and we kind of for user group here on altme, working closer together. I will reread your post towards the topic, to find out what is the purpose of the initiative ... | |
Pekr: 25-May-2007 | What I actually see is you collecting ideas, e.g. from Maxim, discussing some things, but admitting you will choose only some parts of eventual data-flow aproach, maybe without understanding whole Maxim's engine purpose? I don't really mind new VID being your or Carl's only decision, but what I would regard as being fair is - create some document about planned architecture, and let it run via 1 or 2 round of comments here. Actually, you prepared your original ideas in such form too IIRC. | |
Pekr: 25-May-2007 | decision - difficult to say .... some form of more involvement, better organisation of efforst. Last two weeks I exchanged two emails with Carl. My opinion is, that we need to start working on several parallel fronts. DevBase, DocBase, new RT's site structure (both .com and .net). We don't know anything concrete about those. And those are importan - we need to start to think too, how to structure docs, if/how we allow them to be translated, etc. |
801 / 1573 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | [9] | 10 | 11 | 12 | 13 | 14 | 15 | 16 |