Mike Many thanks. Jim Bentley American Celiac Society [email protected] tel: 1-504-737-3293
----- Original Message ---- From: Mike Byerley <[email protected]> To: RBASE-L Mailing List <[email protected]> Sent: Sat, July 10, 2010 6:00:08 PM Subject: [RBASE-L] - Available for download - RMScriptPak The RMScript Win32 Dll for use with RBase using DLCall is available for download here: http://www.byerley.net/RMScriptPak.zip I have included a fair amount of useful examples including a couple of forms in a 7.6 / 9.0(32) db exibiting some ways to get you started. The helpfile is included as well as a bunch of other stuff, most of which is mentioned in the ReadMeFirst file. ----- Original Message ----- From: "Luc Delcoigne" <[email protected]> To: "RBASE-L Mailing List" <[email protected]> Sent: Friday, July 09, 2010 10:12 AM Subject: [RBASE-L] - re: inserting text in ascii file. > Mike, > > this sounds very tempting. > But, alas...I have no idea how my work-schedule will be in October. > > But I'll certainly keep it in mind...... > > If I can solve the efilm connection problem, that would give me a second > reason >to consider your offer .... ;-) > > Luc D. > > -------------------------------------------------- > From: "Mike Byerley" <[email protected]> > Sent: Friday, July 09, 2010 3:59 PM > To: "RBASE-L Mailing List" <[email protected]> > Subject: [RBASE-L] - re: inserting text in ascii file. > >>> Pity that you live on the other side of the atlantic. >>> This is something worth to have a drink toget >> >> Come to conference in October and have a drink with everyone.... >> >> ----- Original Message ----- From: "Luc Delcoigne" <[email protected]> >> To: "RBASE-L Mailing List" <[email protected]> >> Sent: Friday, July 09, 2010 9:56 AM >> Subject: [RBASE-L] - re: inserting text in ascii file. >> >> >>> Mike, >>> >>> the problem is solved !!! >>> >>> IF (SGET(.vnote,1,.vwrap)) <> ' ' THEN >>> >>> has to be >>> >>> IF (SGET(.vnote,1,.vwrap)) <> (char(32)) THEN >>> >>> and idem for the line in the WHILE-clause. >>> >>> the code works all right now.... >>> >> her. >>> >>> Now: >>> >>> on to the other problem : the connection with efilm.... >>> >>> I hope you can help me out here too..... >>> >>> Luc delcoigne >>> >>> -------------------------------------------------- >>> From: "Mike Byerley" <[email protected]> >>> Sent: Friday, July 09, 2010 1:52 PM >>> To: "RBASE-L Mailing List" <[email protected]> >>> Subject: [RBASE-L] - re: inserting text in ascii file. >>> >>>> Well like I said, I wrote it 8+ years ago and haven't looked at it or used >>>> it >>>>since 2006. What prompted it in the beginning was the joining of db lines >>>>of >>>>boilerplate text without CrLf and the concantenation would make the text >>>>wrap or >>>>break in the middle of words at undesirable locations. If you take the full >>>>example shown below and change the wrap position, you will see that the >>>>output >>>>changes to match the wrap location: >>>> >>>> LABEL bgprog >>>> SET VAR v1 TEXT = + >>>> 'This is a test to concatenate several lines of text into another ' >>>> SET VAR v2 TEXT = + >>>> 'variable and write the contents of the resulting variable to provide ' >>>> SET VAR v3 TEXT = + >>>> 'programmers on the R:BASE list server a code sample to see if they ' >>>> SET VAR v4 TEXT = + >>>> 'are able to duplicate our problem or if we have some type of >>>> configuration >' >>>> SET VAR v5 TEXT = 'issue. ' >>>> SET VAR v6 TEXT = + >>>> 'This code wraps the variable at position 30. What we are seeing is ' >>>> SET VAR v7 TEXT = + >>>> 'spaces in position 31 are not truncated but inserted at the beginning of ' >>>> SET VAR v8 TEXT = 'the following line. ' >>>> SET VAR vnote NOTE = (.v1 & .v2 & .v3 & .v4 & .v5 & .v6 & .v7 & .v8) >>>> CLEAR VAR v1,v2,v3,v4,v5,v6,v7,v8 >>>> SET VAR vstrtmp NOTE >>>> SET VAR vgetlen INTEGER >>>> SET VAR vgettext TEXT >>>> SET VAR vstrlen INTEGER >>>> >>>> --the wrap location >>>> SET VAR vwrap INTEGER = 55 >>>> >>>> SET VAR vcrlf = ((CHAR(13))+(CHAR(10))) >>>> SET VAR vstrlen = (SLEN(.vnote)) >>>> WHILE vstrlen > 0 THEN >>>> SET VAR vsloc = .vwrap >>>> --test for location of space at wrap point >>>> IF (SGET(.vnote,1,.vwrap)) <> ' ' THEN >>>> -- loop backwards till find set var vgetlen = .vsloc >>>> WHILE (SGET(.vnote,1,.vsloc)) <> ' ' THEN >>>> IF (SLEN(.vnote)) <= .vsloc THEN >>>> SET VAR vsloc = (SLEN(.vnote)) >>>> SET VAR vgetlen = (SLEN(.vnote)) >>>> ELSE >>>> SET VAR vsloc = (.vsloc - 1) >>>> SET VAR vgetlen = .vsloc >>>> ENDIF >>>> ENDWHILE >>>> SET VAR vgettext = (SGET(.vnote,.vgetlen,1)) >>>> SET VAR vgettext = (LJS(.vgettext,.vgetlen)) >>>> SET VAR vgettext = (STRIM(.vgettext)) >>>> SET VAR vstrtmp = (.vstrtmp + .vgettext + .vcrlf) >>>> SET VAR vstrlen = (.vstrlen - .vgetlen) >>>> IF vstrlen < 0 THEN >>>> SET VAR vstrlen = (SLEN(.vnote)) >>>> ENDIF >>>> SET VAR vnote = (SGET(.vnote,.vstrlen, (.vgetlen + 1))) >>>> ELSE >>>> SET VAR vgettext = (SGET(.vnote,.vwrap,1)) >>>> SET VAR vgettext = (LJS(.vgettext,.vwrap)) >>>> SET VAR vgettext = (STRIM(.vgettext)) >>>> SET VAR vstrtmp = (.vstrtmp + .vgettext + .vcrlf) >>>> SET VAR vstrlen = (.vstrlen - .vwrap) >>>> IF vstrlen < 0 THEN >>>> SET VAR vstrlen = (SLEN(.vnote)) >>>> ENDIF >>>> SET VAR vnote = (SGET(.vnote, .vstrlen, (.vwrap + 1))) >>>> ENDIF >>>> ENDWHILE >>>> SET VAR vnote = (SRPL(.vstrtmp,' ', ' ',0)) >>>> LABEL ndproc >>>> SHOW VAR vnote=&vwrap AT 5 20 >>>> CLEAR VAR vcrlf,vgetlen,vgettext,vsloc,vstrlen,vstrtmp,vwrap >>>> RETURN >>>> >>>> >>>> ----- Original Message ----- From: "James Bentley" >><[email protected]> >>>> To: "RBASE-L Mailing List" <[email protected]> >>>> Sent: Thursday, July 08, 2010 11:37 PM >>>> Subject: [RBASE-L] - re: inserting text in ascii file. >>>> >>>> >>>>> Mike, >>>>> While I don't have time to work on a solution. Several ideas occur. As >>>>> some >>>on >>>>> mentioned you may need to strip out the CR & LF. That seems to be the >>>>> case >>>>from >>>>> the output shown below. The other is to use the following function to >>>>> find >>>the >>>>> space that indicates a word break. >>>>> >>>>> >>>>> (SLOCP(TextNoteVarcharValue,string,occurrence)) >>>>> Locates the exact position of a given string and occurrence in a TEXT, >>>>> NOTE >>>>or >>>>> VARCHAR value, returning the position if the string is found, 0 if it is >not >>>>> found. Using -1 as the third parameter will return the LAST occurrence. >>>>> >>>>> This would allow you to have a moving window into the text/note/varchar >>>>> variable. >>>>> >>>>> >>>>> >>>>> I would be interested in seeing your final code as I might have a use for >>>>> it >>>>in >>>>> one of my applications where I >>>>> am breaking in the middle of a word. The app would look much nicer if a >>>could >>>>> break on words instead of >>>>> >>>>> >>>>> in the middle of words. >>>>> >>>>> Jim Bentley >>>>> American Celiac Society >>>>> [email protected] >>>>> tel: 1-504-737-3293 >>>>> >>>>> >>>>> >>>>> ----- Original Message ---- >>>>> From: Mike Byerley <[email protected]> >>>>> To: RBASE-L Mailing List <[email protected]> >>>>> Sent: Thu, July 8, 2010 4:19:50 PM >>>>> Subject: [RBASE-L] - re: inserting text in ascii file. >>>>> >>>>> Send me an example text file (direct off list) if you can. Also, show me a >>>>> dozen or so lines of the code you are using to collect the file contents >>>>> into >>>>a >>>>> variable. Also show any pertenant variable declarations. >>>>> >>>>> ----- Original Message ----- From: "Luc Delcoigne" >><[email protected]> >>>>> To: "RBASE-L Mailing List" <[email protected]> >>>>> Sent: Thursday, July 08, 2010 5:06 PM >>>>> Subject: [RBASE-L] - re: inserting text in ascii file. >>>>> >>>>> >>>>>> Mike, >>>>>> >>>>>> i tried your code and I got this : >>>>>> >>>>>> " >>>>>> normale koepelstanden. vrije laterale en dorsale sinussen, >>>>>> zonder tekens >>>>>> van pleuravocht. normale hartgrootte. scherpe aflijning van de hili. >>>>>> norm >>>>>> ale breedte van het bovenste mediastinum. mediane positie van de trachea. >>>>>> >>>>>> >>>>>> normale aeratie van de longvelden. homogene aeratie van de longvelden, >>>>>> z >>>>>> onder confluerende infiltraten noch verdachte opaciteiten. >>>>>> >>>>>> normale botst >>>>>> ructuren. >>>>>> >>>>>> " >>>>>> >>>>>> Never mind the dutch language, >>>>>> The line-length is OK and is set to 75. >>>>>> but as you see I still get some words that are chopped. >>>>>> How could I solve this ? >>>>>> >>>>>> Luc >>>>>> -------------------------------------------------- >>>>>> From: "Mike Byerley" <[email protected]> >>>>>> Sent: Thursday, July 08, 2010 10:41 PM >>>>>> To: "RBASE-L Mailing List" <[email protected]> >>>>>> Subject: [RBASE-L] - re: inserting text in ascii file. >>>>>> >>>>>>> It looks like I wrote it eight years ago to solve a different problem. >>>>>>> It >>>>>just >>>>>>> happens it will likely work for yours. You can change the wrap >>>>>>> variable to >>>>>>any >>>>>>> number and it will insert a CrLf at that location. >>>>>>> >>>>>>> I can think of another solution to the problem that might be a little >>>>>quicker. >>>>>>> Take the variable that contains the file contents, strip out all of the >>>>CrLf, >>>>>>> then process from the beginning using some of the logic in the code I >>>>>>> sent, >>>>>>the >>>>>>> difference being instead of concantenating Notes on the fly, you would >add >>>>>>> completed lines to a variable user defined ListBox and when you are >>>>>>> done, >>>>you >>>>>>> can use the ListBox's Save_To_File method. >>>>>>> >>>>>>> If the length of the file contents isn't too long, there might not be >such >>>>>>> distinguishable difference, so what I sent would probably work without >>>>>>> reinventing it all over again. >>>>>>> >>>>>>> >>>>>>> ----- Original Message ----- From: "Luc Delcoigne" >>>><[email protected]> >>>>>>> To: "RBASE-L Mailing List" <[email protected]> >>>>>>> Sent: Thursday, July 08, 2010 4:30 PM >>>>>>> Subject: [RBASE-L] - re: inserting text in ascii file. >>>>>>> >>>>>>> >>>>>>>> Mike, >>>>>>>> >>>>>>>> This is more than just a forum. This is really a place where people help >>>>>>>> people. >>>>>>>> >>>>>>>> I must say that R:base has been so far a heart-warming experience. >>>>>>>> >>>>>>>> Thank you. >>>>>>>> I will try the code immediately. >>>>>>>> >>>>>>>> Too hot to go to sleep over here. >>>>>>>> >>>>>>>> Luc Delcoigne >>>>>>>> >>>>>>>> -------------------------------------------------- >>>>>>>> From: "Mike Byerley" <[email protected]> >>>>>>>> Sent: Thursday, July 08, 2010 10:25 PM >>>>>>>> To: "RBASE-L Mailing List" <[email protected]> >>>>>>>> Subject: [RBASE-L] - re: inserting text in ascii file. >>>>>>>> >>>>>>>>> Is the problem that after you have it (the file) converted to a Text >>>>>>variable >>>>>>>>> (is it TEXT or VARCHAR), that the word wrap is beyond 75 characters? >>>>>>>>> >>>>>>>>> If it is, I have some old rbase code that wraps text at a designated >>>>>maximum >>>>>>>>> width. Also, after you get the DLL, you will be able to process text >>>>>>>>> files >>>>>>>>any >>>>>>>>> way that is permitted within the VBScript Language. >>>>>>>>> >>>>>>>>> The RBASE CODE: >>>>>>>>> >>>>>>>>> {begin code} >>>>>>>>> LABEL bgprog >>>>>>>>> >>>>>>>>> >>>>>>>>> SET VAR vnote NOTE = (.vVariableOfMyTextFileContents) >>>>>>>>> >>>>>>>>> CLEAR VAR v1,v2,v3,v4,v5,v6,v7,v8 >>>>>>>>> SET VAR vstrtmp NOTE >>>>>>>>> SET VAR vgetlen INTEGER >>>>>>>>> SET VAR vgettext TEXT >>>>>>>>> SET VAR vstrlen INTEGER >>>>>>>>> --the wrap location >>>>>>>>> >>>>>>>>> SET VAR vwrap INTEGER = 75 >>>>>>>>> SET VAR vcrlf = ((CHAR(13))+(CHAR(10))) >>>>>>>>> SET VAR vstrlen = (SLEN(.vnote)) >>>>>>>>> WHILE vstrlen > 0 THEN >>>>>>>>> SET VAR vsloc = .vwrap >>>>>>>>> --test for location of space at wrap point >>>>>>>>> IF (SGET(.vnote,1,.vwrap)) <> ' ' THEN >>>>>>>>> -- loop backwards till find set var vgetlen = .vsloc >>>>>>>>> WHILE (SGET(.vnote,1,.vsloc)) <> ' ' THEN >>>>>>>>> IF (SLEN(.vnote)) <= .vsloc THEN >>>>>>>>> SET VAR vsloc = (SLEN(.vnote)) >>>>>>>>> SET VAR vgetlen = (SLEN(.vnote)) >>>>>>>>> ELSE >>>>>>>>> SET VAR vsloc = (.vsloc - 1) >>>>>>>>> SET VAR vgetlen = .vsloc >>>>>>>>> ENDIF >>>>>>>>> ENDWHILE >>>>>>>>> SET VAR vgettext = (SGET(.vnote,.vgetlen,1)) >>>>>>>>> SET VAR vgettext = (LJS(.vgettext,.vgetlen)) >>>>>>>>> SET VAR vgettext = (STRIM(.vgettext)) >>>>>>>>> SET VAR vstrtmp = (.vstrtmp + .vgettext + .vcrlf) >>>>>>>>> SET VAR vstrlen = (.vstrlen - .vgetlen) >>>>>>>>> IF vstrlen < 0 THEN >>>>>>>>> SET VAR vstrlen = (SLEN(.vnote)) >>>>>>>>> ENDIF >>>>>>>>> SET VAR vnote = (SGET(.vnote,.vstrlen, (.vgetlen + 1))) >>>>>>>>> ELSE >>>>>>>>> SET VAR vgettext = (SGET(.vnote,.vwrap,1)) >>>>>>>>> SET VAR vgettext = (LJS(.vgettext,.vwrap)) >>>>>>>>> SET VAR vgettext = (STRIM(.vgettext)) >>>>>>>>> SET VAR vstrtmp = (.vstrtmp + .vgettext + .vcrlf) >>>>>>>>> SET VAR vstrlen = (.vstrlen - .vwrap) >>>>>>>>> IF vstrlen < 0 THEN >>>>>>>>> SET VAR vstrlen = (SLEN(.vnote)) >>>>>>>>> ENDIF >>>>>>>>> SET VAR vnote = (SGET(.vnote, .vstrlen, (.vwrap + 1))) >>>>>>>>> ENDIF >>>>>>>>> ENDWHILE >>>>>>>>> SET VAR vnote = (SRPL(.vstrtmp,' ', ' ',0)) >>>>>>>>> LABEL ndproc >>>>>>>>> show var vnote=.vwrap at 5 20 >>>>>>>>> CLEAR VAR vcrlf,vgetlen,vgettext,vsloc,vstrlen,vstrtmp,vwrap >>>>>>>>> RETURN >>>>>>>>> >>>>>>>>> {end code} >>>>>>>>> >>>>>>>>> ----- Original Message ----- From: "Luc Delcoigne" >>>>>> <[email protected]> >>>>>>>>> To: "RBASE-L Mailing List" <[email protected]> >>>>>>>>> Sent: Thursday, July 08, 2010 4:09 PM >>>>>>>>> Subject: [RBASE-L] - re: inserting text in ascii file. >>>>>>>>> >>>>>>>>> >>>>>>>>> Hi all, >>>>>>>>> >>>>>>>>> I've been sweating all day long on this problem. >>>>>>>>> >>>>>>>>> In a ascii file I have to insert the contents of a rtf- blob. >>>>>>>>> With the RRTFtoTxt pluging I could convert the it to a text variable. >>>>>>>>> >>>>>>>>> Now I can insert the text variable in my file. >>>>>>>>> >>>>>>>>> BUT the lines of the inserted text cannot be longer than 75 characters. >>>>>>>>> >>>>>>>>> This is an essential part of my application. >>>>>>>>> >>>>>>>>> Without this I could be forced to stick with Access where I can >>>>>>>>> manipulate >>>>>>>the >>>>>>>>> file with the Wordobj....and I love R:base... >>>>>>>>> >>>>>>>>> Any ideas ?? >>>>>>>>> Grtz >>>>>>>>> >>>>>>>>> Luc Delcoigne >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> > >

