« first day (1316 days earlier)      last day (1864 days later) » 
00:00 - 17:0017:00 - 00:00

5:01 PM
Now they're stuck with even bigger amount of VBA code (that's STILL being written today and tomorrow) running amok all over the world. #GoodLuck, Microsoft with deprecating that.
 
@Mat'sMug Don't ever do select *.
I've had to fix enough SPs that break when the DB model changes...
 
I usually don't
 
LOL, I'm out of tickets.
 
RD PR!
 
Just two days ago, my boss and I were discussing how we are negotiating for someone to pay for a story, and I'm sitting twiddling my thumbs.
She said we might as well just start making them pay to enable it, and I can start developing it as soon as we get the request.
So, they pay for N hours, and as soon as they pay, we enable it.
"Hey, you took that long to decide if you wanted it--we figured you would, so we did it."
And if they back out, we could say "We are already N way in, what if you pay for X remaining hours" and maybe get something out of it. Other clients would likely buy it too, so...
 
5:07 PM
@Hosch250 Very nice!
 
@Mat'sMug I could. Except we are testing a couple huge refactors, so I'd rather be available.
Like, this is stuff that lays the ground for refactoring much of our code base to get things to not run in-process.
And restructures our DB to be more inline with standards.
We hope our change will make it more performant too.
I rewrote the front-end of one of our widgets for the next release to make it more accessible.
 
5:39 PM
Updated with proper cancellation.
 
Just confirming: you all wouldn't run another function from an error handler, right?
Like this:
SubOpenSmallFiles()

    On Error GoTo ErrorHandler
    OpenSmallFileMethod(BigFile)
    On Error GoTo 0

ErrorHandler:
    If Err.Number = (Number for too big file) Then
        OpenBigFiles(BigFile)
    End If
    On Error Goto 0
    Resume
Yeah, I should do this instead:
SubOpenSmallFiles()

    On Error GoTo ErrorHandler
    FileText = OpenSmallFileMethod(BigFile)
    On Error GoTo 0
    If FileText = vbnullstring then FileText = OpenBigFiles(BigFile)

ErrorHandler:
    If Err.Number = (Number for too big file) Then
        On Error Goto 0
        Resume
    End If
Thanks for rubberducking with me :)
 
@puzzlepiece87 that error handler strikes me as rather useless though
 
@Mat'sMug You would just do On Error Resume Next?
 
what if the error is "file not found" (or anything other than (number for too big file), actually)? procedure just bails out without saying anything?
 
5:55 PM
No, I actually have an Else statement, I was just trying to drill down to my issue :)
 
If the error is file not found then I have it pop up the runtime error, currently.
Thanks for the feedback!
 
Regarding function calling inside an active error state --- it's perfectly and in fact is correct thing to do if the function being called itself can cause errors.
 
(Also for the record, I validate the file before the File Open sub, but I'm saying that I have this:)
    Else
        On Error GoTo 0
        Resume
    End If
@this Oh, that's interesting, didn't think of that. Thanks @this!
 
btw, not sure if that was merely snippet but i want to point out that your code fall through into the error handler. It shouldn't.
 
5:58 PM
Yeah, you're missing an Exit Sub.
 
and to provide another alternative -you can have multiple error handlers in a procedures.
though I only recommend it if there's some fall-throughs that needs to be done.
 
Also, you can explicitly raise the error. Err.Raise Err.Number, Description:=Err.Description. This, to me at least, is easier to follow than On Error GoTo 0 : Resume which will in turn just raise the error.
 
^ I was actually wondering about that 2 statements.
 
IIUC It just essentially turns off the error handler, and resumes on the line causing the error.
 
which would then propagate. Wow. Pretty confusing.
 
6:01 PM
But thats going to be a head-scratcher for anyone else debugging your code. Much better to either bubble up the error, or explicitly raise it.
 
Yeah, definitely do a Err.Raise, @puzzlepiece87
TBH I didn't caught that subtety, @BrandonBarney - I was thinking it'd be stuck in an infinite loop
 
@puzzlepiece87 You could also potentially raise a specific message (depending on what you are working with). Err.Raise Err.Number, Description:="This file is too big to open."
@this It would if the statement was turning on the same error handler. On Error GoTo ErrorHandler : Resume
That would definitely be an infinite loop.
Just throwing it out there, if you can predict the error you could write Sub OpenFile which decides between OpenSmall and OpenBig. It could also test if the file is even able to be opened before trying either.
 
rule of thumb, any On Error statement inside an error-handling subroutine, is a smell
that includes On Error GoTo 0
 
Good to know.
 
I mean, you're handling an error already, it's too late to tell VBA what to do when there's an error
 
6:07 PM
In fact, it won't work
 
Also, lastly, that first example will throw an error, regardless of whether OpenBigFile(BigFile) works or not, because you use a Resume which will start at the source of the error.
It won't?
 
I mean it won't cause you code but the error handling just won't work as expected.
Recall me earlier saying that if you call something inside an active error handler that itself can throw error, it should be inside another function with its own error handler?
If you do something like On Error Resume Next: LogThisStuff: whatever inside an active error handler, you get strange behavior -- I can't remember exactly what but it's insidious because you can only have one active error handler. You can't "switch" error handling while it's error, as Mat said.
 
Wait, doesn't it resume to the previously instated error handler?
I remember something along the lines of it returning control to the parent handler.
 
6:42 PM
@BrandonBarney TBH I can't remember. I just know that changing error handler inside an error handler is a bad idea™. Hmm, in fact, I think RD should slap some cold cod on people's head for doing that. It's really really insidious because as said, it will compile and seem to work.... then screw them in a major way.
 
@this agreed. I'd even call it a Very Bad Idea™
 
didn't know trademarks were case sensitive. :p
 
there :)
and now I'm desperately trying to find a synonym of "idea" that starts with an "A"
 
VBA Rudderduck: Saving programmers from Very Bad Idea™ since 2015.
2
 
ha, Very Bad Assumption™ works!
 
6:48 PM
aw, can't edit.
Rudderduck: Saving programmers from Very Bad Assumptions™ since 2015.
3
 
haha
"Saving programmers from VBA since 2015"
that's golden
On Error Resume Next is NOT an ***ErrorHandler***. It suppresses errors an allows the code to keep executing in an error state, which means your code is making a Very Bad Assumption™. — Mat's Mug 40 secs ago
 
On Error Resume Next is VBA's peril-sensitive sunglasses.
 
"pink glasses" happy pill, yeah
 
"hey-o, I saw the messagebox "Done!", so it worked!"
 
7:03 PM
@M.Doerner if you do happen to have a go with the unique RCWs, you will find that it exposes weaknesses in the current implementation of the safe wrappers.
Currently it's relying on FinalReleaseComObject, but having unique RCWs makes this ineffective.
 
We never call FinalReleaseComObject.
 
So subsequently, some COM objects are then not being released again... and crashes.
IMO, FinalReleaseComObject should not be used anyway.
hmm how come its in safecom wrappers
 
I presumed it was there for completeness' sake in case we had a legit case.
 
It was added eons ago when the code was alive the first time. Then it was reactivated when the rest was reactivated.
 
right ok, i'll have another look
 
7:07 PM
It cannot be called anymore since I made the Release method private.
Only Dispose ever calls Release.
 
hmm the dead code should probably be removed
 
I left it for the event that we want to make it publicly available again.
 
ok gtk
 
However, I would not mind removing it.
I could do it as part of my next PR.
 
:+1:
 
7:10 PM
Wondering - could a COM leak lead to a managed leak?
 
With using the unique RCWs, I get a few unreleased COM objects in my log:
Rubberduck._Extension#0 {0014} #THREAD19f8 000000. WRAP0040:$0603a094 [Window x2]
Rubberduck._Extension#0 {0014} #THREAD19f8 000000. WRAP0035:$0603accc [IConnectionPointContainer]
Rubberduck._Extension#0 {0014} #THREAD19f8 000000. WRAP0034:$0603acb4 [_VBProjects]
 
interesting
 
Window occurs twice for each tool window
plus some CommandBar entries as well
 
The windows do not use the SafeComWrapper.
 
are we talking about the window as returned from CreateToolWindow
 
7:12 PM
we also don't have direct control on the IConnectionPointContainer -- that would be implicit via event handler setup/teardown.
 
At least I did.
 
Yeah, I think for the connection point container, you're limited, and will need the final GC.Collect to ensure (or hope) that gets released
 
Wait, the actual window gets wrapped.
 
@M.Doerner I think all windows, regardless of its type, should be wrapped. They are COM, after all, no?
 
if a commandbar is leaking, it could be the leaked IConnectionPointContainer, no?
 
7:13 PM
I was thinking of the special wrapped dockable windows.
 
hmm, or _VBProjects could be
 
@WaynePhillipsEA can we aggregate that like we did for other interfaces?
 
I guess it is the projects collection.
 
@this, most probably
 
I wonder where we no not wrap that projects collection.
 
7:15 PM
I think the unique RCWs is making the natural GC even less likely to occur, and so is exposing the final few points where COM objects are leaking
(occassionally)
I might be able to track down the source code line, but got to get the kids to bed so it will be a bit later
 
Not quite sure if I have ever seen uglier code: stackoverflow.com/questions/48232211/…
 
Oh, I think it is the projects collection we cache to attach the events.
 
bbl guys
 
later!
@M.Doerner makes sense
 
Actually, we wrap that target.
However, I am not too sure what another managed reference to the target does to the reference count on the RCW.
 
7:20 PM
if we over-release, the RCW becomes eligible for GC too early, right?
 
No, but as soon as the count reaches zero, it detaches from the COM object.
That is even worse.
 
ouch
well, the good news is that we'd know quite fast
 
I wonder what unique RCW means for performance. I assume they made RCW shared to optimize the resources.
 
I guess so, too.
 
7:35 PM
@Mat'sMug I'm confused. So if you're about to Exit Sub anyway, you'd put the On Error Goto 0 as the next step outside the Sub?
 
@puzzlepiece87 I wouldn't put On Error GoTo 0 anywhere :)
 
@puzzlepiece87 why would we? Exit sub clears the error state already.
 
@this Ah, I didn't realize that.
 
@Mat'sMug FWIW, I do use them rarely, usually for procedures that should throw errors back to caller but has localized error ignorer.
 
I'd say I pretty much only use OEG0 together with OERN
so yeah, same
 
7:40 PM
That's about the only good use for OEG0 yeah.
 
to the left, uh, wego wego, uh, to the right, uh, wego wego
 
BTW, I'm snickering that it reads as "Oh, ego" :p
Therefore, you can size one's ego by # of OEG0 in one's VBA code.
 
@BrandonBarney This would be my favorite solution since I generally like avoiding errors at all costs, but I haven't figured out a way to do that yet.
 
huh wtf
2
Q: Subscript out of range for DIR Function

Brandon BrownMy VBA code is cycling through a folder with thousands of excel workbooks in it, and about 180 workbooks into the loop I got a subscript out of range error (run-time error 9) InputPath = inputFolder & "*" ImportFileName = Dir(InputPath) Do While ImportFileName <> "" 'code of some sort...

 
This is the problem line: strEntireFile = Space$(fileCurrent.Size). I'm not sure how to avoid that because 1. Excel seems rather variable in the max string size it will allow and 2. I wouldn't want to hard code it, but I'm not sure how to make it dynamic.
So for now, error handling.
 
7:44 PM
@puzzlepiece87 sometime the quickest thing to do is to actually try it and handle the error.
 
@this Ha, you'd probably laugh at me then.
 
@puzzlepiece87 Excel has nothing to do with max string size
 
I have a bunch of error prevention functions saved up.
DoesSheetExist, DoesFileExist, DoesFolderExist, etc.
 
As alluded to, for those types of case, I usually wrap it in a localized OERN which I then retry in next step so there's a clear progression of how things will degrade before it quits for good. Sometimes it's not worth it chasing the exact error number.
 
*usually
 
7:47 PM
@this That makes sense.
@Mat'sMug What ends up being the final determinant of max string size?
 
Excel is the host application, it provides an object model and a host document. VBA does everything else.
 
IIRC, it can be up to 2 GB large but in practice it's much less because you're constrained by how OS manage memory.
Try to allocate too much, then OS will say "sorry, no can do". Because there's lot of things going, it's possible for a large allocation to succeed one time, then fail the next time.
 
@this Yup, this has been my exact experience.
 
@M.Doerner, @this, @Mat'sMug It gets interesting...
 
So I used an error handler since I can't think of a good way to test if it can assign properly. And now I think I'm going to put OpenBigFile() in there
 
7:53 PM
This is the command bar leak: logger.Trace($"Removed handler for: {parent.GetType().Name} '{Target.Caption}' (tag: {Tag}, hashcode:{Target.GetHashCode()})");
parent.GetType() causes the leak
 
there are also other constraints as well - the program may have much lower limit, so even a 50 MB might be asking for too much, @puzzlepiece87. That said, you might need to look at ADODB.Stream if you are really managing large chunk of data...
 
@puzzlepiece87 why not just define a reasonable cutoff byte size? Say, anything greater than 16,384KB goes through the "large file" pipeline - or whatever you feel is right
@WaynePhillipsEA oh, crap
 
actually, wait the debugger is not even hitting that line
breakpoints in event subscriptions get hit as normal don't they?
 
hmm, that means we're never deregistering event handlers for cmdbar buttons??
@WaynePhillipsEA should, yeah
stupid question: is the breakpoint hollow?
 
no, it's red
 
7:59 PM
ok. should be hit then
 
sorry yes it is hollow. says source code different. let me rebuild
 
@this So far I was planning on using this: Microsoft's How to Seek Past VBA's 2GB File Limit
 
@WaynePhillipsEA this typically happens when you're running a debug build but the COM registration is for a release build
i.e. VS debugger is running, but the VBE is loading another build entirely
 
@Mat'sMug That could definitely be a good idea for the future, but since I don't understand API calls very well I currently have a strong preference for SaveEntireFileToString whenever possible.
 
@puzzlepiece87 that's fine for a few MB's, tops
 
8:05 PM
@puzzlepiece87 Sure. You could import a boatload of API and do high risk stunts off the 100 meter high live electric wire. Or you could just use ADODB.Stream
 
@Mat'sMug So far I've had good experiences with it until around 1.5-2 GB, but my current files are 20GB.
@this I appreciate that advice, I'll go do ADODB.Stream now :)
@this We all need to live a little sometimes ;)
 
use a stream. even 1.5GB is a ridiculous amount of data to load into a single string.
 
Beyond ridiculous. Ridiculous was 250 MB.
 
kids these days... back in the days when your file was more than 1.44MB you'd do everything you could to shave off a byte here and a byte there so it could fit your damn floppy.
 
8:10 PM
TBH, I wouldn't try to allocate more than 10 MB in-memory.
@Mat'sMug IKR!
 
#GetOffMyLawn
:)
 
#640KBOughtToBeEnoughForAnyone
 
^^^^^^
 
@puzzlepiece87 you should take note of this, however: docs.microsoft.com/en-us/sql/ado/reference/ado-api/…
Because its Size is a long, it can't tell you the size of the file > than 2 GB so you'll have to blindly read until you reach the EOS
 
EOS?
oh
nm
 
8:16 PM
For posterity - EOS = End of stream
 
@this hmm, will wrap or overflow?
 
it says trunucate, so I read it as overflow.
 
true new Kate huh
 
Thinking about it, it also implies that you can't use Position, either.
You'd have to do stuff like Do Until .EOS: buffer = .Read(BufferSize) : 'Do stuff with buffer... : Loop
 
@this Yeah, I hit something similar with strEntireFile = Space$(fileCurrent.Size)
There's about an 50 MB margin where instead of "file too large" error, it gives illegal value because the long overflows back to negative numbers.
I could be wrong but that warning sounds similar in concept.
 
8:21 PM
wraps then
 
You get to have the rare joy of being the only VBA programmer to read 2+ GB file in the whole planet. :p
 
lol
strEntireFile can't happen
first, it defeats the purpose of streaming
 
@Mat'sMug it's wrapping by overflowing. ;)
 
yeah I but I meant "overflows" as in RTE6
 
ah - yeah I don't think RTE6 will ever happen with Size and Position can't reach beyond the 2GB boundary.
woudl be funky to see negative number once we pass the 2GB boundary, though. :p
Hmm, if it's negative, does that mean Position can still visit between >2 and <4 GB region of the file...
Truly don't know. Never had to deal with files that big. The biggest I ever handled was 250 MB, give or take.
 
8:32 PM
Thanks again for pushing me in the right direction, @this. Stream is doing everything I was already attempting to do with the API calls in a way I can easily follow and feel confident with.
 
hopefully it will take you beyond the 2 GB however.
probably should verify that first before you invest too much in it
 
Sounds good, I will try
Since it has byte streaming ability I'm guessing it could be possible, we'll see.
 
is it binary or text file?
 
seriously, what kind of file is that???
 
8:37 PM
then you should be using text if you can. You know the encoding, right?
 
It's an audit for an entire quarter for one of our biggest markets.
 
ok... why not split them in.... week?
 
I can look it up
 
whoever wrote that file need to be pointed at and laughed for being so stingy with files. :p
 
Probably because then the health plan would have to run the query 12 times and they lack the willingness or technical expertise to do that :P
 
8:39 PM
wait, it's a query?
why are we even dealing with files?!?
Sorry, I shouldn't overreach. I need to assume you have a reason why you can't just query data directly yourself.
 
No, those are valid questions :P
 
ones i'm sure you already asked yourself and don't need to repeat to me.
 
It makes me laugh too
Hey, I enjoy commiserating with people :)
 
Anyway, so there is no magic "I'm encoded in this encoding" decoder ring for text files generally. XML at least let gives you hint with the ? directive at the start of file
 
Dude, @Hosch250's workplace is divided over whether they want to use Git, I think this is a fine place to bang our heads on our desks xD
 
8:44 PM
Point granted.
 
LOL.
 
Oh what? I'm surprised it wasn't in the details section of the file properties
But yes, I just got there and didn't see it.
 
Nope. you've been living a lie.
 
Also, I misremembered the file size, they're 2.5 GB thankfully.
There's only like 3 ways of encoding, right? So I can just try them all till I get the right one.
 
text editors actually do no better than guessing based on data they see in the text files.
...... :|
 
8:45 PM
It's like ANSI and UTF-16 and maybe one other?
 
:(
You in for a world of pain, man.
 
I'm sorry for the pain I'm causing you xD
 
@puzzlepiece87 LOL.
 
Lol, I'm asking for it with my Firefighter-In-Chief job. It's pain pain every day.
 
unicode, UTF-8, UTF-7, and a million others.
 
8:46 PM
no no, this is me feeling bad because you are about to discover the joy of text encoding.
^^
Windows-1282, ANSI are other two common encoding.
 
UTF-32, ASCII.
 
Way too many
 
I'll try ANSI first since that's the default for Notepad, then go from there.
 
Do note that you won't get an error.
It could look great .... until 10,00,000th character in, there's few chinese characters. Oops!
i'd ask whoever is writing those files what encoding they are using instead of try to guess.
 
8:50 PM
@this Odds are they don't know.
Or care.
 
and that annoys me immensely.
 
Me too.
I mean, it's only so long until I get sucked into the file upload process here.
I mean, you should hear them complaining.
XYZ corp. puts unprintable characters, including EOF, in the middle of their CSV's.
 
TBH when I first learn that it was all one big sham, I was genuinely shocked. I had expected that everyone would be more upfront with what encoding to be used.... right?
 
It makes me want to ROFL, then commit seppuku.
@this No, because they don't know.
Everyone makes that assumption.
And that's the reason it's so bad.
 
@puzzlepiece87 you should read this.... joelonsoftware.com/2003/10/08/…
 
8:53 PM
@M.Doerner... does this look like one: private static VB.VBProjects _projects;
 
@Hosch250 The magic of abstraction at work. :)
 
That is the one from VBA.VBProjects, right?
 
yeah
looks to be a non wrapped reference
 
We do wrap the target in a SafeComWrapper afterwards.
It gets assigned in the constructor that hands the RCW to the base class afterwards.
However, I guess that still increases the RCW's internal reference count.
 
yeah, exactly
 
8:59 PM
Problem with wrapping it is, it gets assigned in the constructor of the wrapper.
 
yeah, looks wrong to my eyes
 
I think we are doing something wrong with the static events, anyway.
 
@M.Doerner maybe we can study/borrow the events implementation from NetOffice?
 
Might be worth a look.
 
I'm pretty sure that is the VBProjects leak mentioned earlier anyway
 
9:02 PM
We could also attach to the actual Events object.
 
@this Finished.
 
@M.Doerner given that's what MSDN documentation recommends for implementation within Vb6 i think that makes sense. You'd also get the ability to filter events (e.g. to exclude projects we can't use perhaps?)
 
Anyway, with the change I am implementing atm, there should only be one reference to the VBProjects collection left in RD, i.e. after some more cleanup.
 
sounds good
 
Attaching to that object might also cure our issue with listening only to the events of one VBComponents collection.
 
9:05 PM
there is a similar unwrapped reference here: private static VB.VBComponents _components;
 
Same reason why it is this way.
 
yep sure, just needs tweaking
or reworking if your sorting the events out
 
That class is actually somewhat broken because the event registration only allows us to listen to the events of the first collection.
 
ah, understood
 
The documentation states that the events fire for all components. However, that documentation talks about the event provider on the Events object on the VBE.
 
9:10 PM
BTW the command bar leak was a red herring, as I wasn't working off a clean source
@this IConnectionPointContainer can most probably be sorted without using aggregates
 
Sounds like, yeah
we'd only need to aggregate if there were an actual bug in the implementation similar to UserControl. I don't think that'll be the case. At least I hope not!
 
We'll just need to define/implement the IConnectionPoint* interfaces ourselves, and VBE will accept them.
 
@WaynePhillipsEA lol, I like how you say "just"
 
Problem is, this won't play nice with managed events/delegates.
Instead of managed events, you'd have to provide an object implementing the correct source-interface
 
Completely unrelated, does anyone know how I can get the MS docs page to display in english? I really hate those crappy translations into german and the hover over to display a box with the original is BS.
 
9:19 PM
@M.Doerner do you happen to know how many event hooks are there into the VBE
 
@WaynePhillipsEA wouldn't this help? msdn.microsoft.com/en-us/library/at4fb09f(v=vs.110).aspx
@M.Doerner is your MSDN going to something like de-XX? change to en-us.
 
not really. IConnectionPoint* works off com interfaces
 
@this Thanks for the pointer.
 
ah. In that case, let's hope we won't need to get to that point. :)
 
Oh you definitely will... if you want to properly control the release of the IConnectionPointContainer
otherwise its always going to be up to the GC
 
9:22 PM
@M.Doerner no problem - I'm sorry I don't know how to do this permanently - I imagine MSDN bases this on your profile or possibly on your IP.
 
I total, we should have something like eight. One implicitly as an add-in and then explicit ones for the projects and components events.
 
Oh that's not too bad then.
 
Probably the IP.
I could be wrong, but I think we do not attach to any other events.
 
Hmm. Couldn't we just implement the outgoing com interface and pass that in as the source interface using ComSourceInterface attribute?
 
Oh yes... totally forgot about that. that should work
 
9:24 PM
but.... the VBE's outgiong COM interfaces are weird as hell.
 
oh hang on...
 
In OleView, they are empty.
 
It should still work. They are somewhat defined in VBProjects.cs, just not as proper interfaces.
If you create them as proper dispinterfaces (not dual), and use them for ComSourceInterface, it should work
 
Yeah
 
But question is, would you get any better control over IConnectionPointContainer doing it that way
 
9:31 PM
I have to think that .NET has to be correctly setting/disposing the container as part of handling the ComSourceInterface
 
I suspect, the GC might still hang on to an extra implicit reference to that interface, even when you call ReleaseComObject on the root object
 
Maybe that's optimistic for me. But even so, we still have to have the interfaces defined anyway even for aggregated IConnection*** objects, no?
so we can start with using COM Interop attributes first then seeing how it improves thing and if it still doesn't, aggregate the rest?
 
Exactly, first try would be to migrate to the ComSourceInterface, and if that didn't work, we'd just have to implement a bit of the IConnectionPoint* interfaces
^ yup
 
great.
 
it's a plan
right I'm off. I'll let you guys discuss the finer details, but if you want me to do/write anything let me know
 
9:36 PM
@M.Doerner if you want / is ok with you, I can make changes or will it conflict with your upcoming PR?
GN, Wayne!
 
night all
 
'night!
 
night
 
Duck check: Has anyone else had an issue with Application.Transpose() replacing characters with '?'
 
@this Just go ahead.
I am more working on the code using the wrappers.
 
9:42 PM
OK, thanks.
 
> Just to throw it out - would it be more simpler to substitute the CE with our custom PE? That wouldn't require pre-parsing service and would be a matter of substituting the view/viewmodel with the other once parsed? That would not require any temporary Declaration. Without the parsing, we can't have folders anyway, so at least it'd allow for searching/listing/opening objects just like in PE.
> @bclothier that's oddly much simpler and less dangerous indeed. But is it worth the effort?
 
10:26 PM
[rubberduck-vba/Rubberduck] build for commit 5eb456bb on unknown branch: No report found to compare against
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3685?src=pr&el=h1) Report
> :exclamation: No coverage uploaded for pull request base (`next@4a6db52`). [Click here to learn what that means](https://docs.codecov.io/docs/error-reference#section-missing-base-commit).
> The diff coverage is `53.33%`.

[![Impacted file tree graph](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3685/graphs/tree.svg?width=650&height=150&src=pr&token=0zIVyLTgaw)](https://codecov.io/gh/rubberduck-
[rubberduck-vba/Rubberduck] build for commit 5eb456bb on unknown branch: No report found to compare against
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3685?src=pr&el=h1) Report
> :exclamation: No coverage uploaded for pull request base (`next@4a6db52`). [Click here to learn what that means](https://docs.codecov.io/docs/error-reference#section-missing-base-commit).
> The diff coverage is `53.33%`.

[![Impacted file tree graph](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3685/graphs/tree.svg?token=0zIVyLTgaw&src=pr&height=150&width=650)](https://codecov.io/gh/rubberduck-
[rubberduck-vba/Rubberduck] build for commit e6eacab5 on unknown branch: AppVeyor build failed
BUILD FAILURE!
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3685?src=pr&el=h1) Report
> :exclamation: No coverage uploaded for pull request base (`next@4a6db52`). [Click here to learn what that means](https://docs.codecov.io/docs/error-reference#section-missing-base-commit).
> The diff coverage is `53.33%`.

[![Impacted file tree graph](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3685/graphs/tree.svg?width=650&height=150&token=0zIVyLTgaw&src=pr)](https://codecov.io/gh/rubberduck-
> @IvenBach I don't think this PR closes the issue. You created the inspection, but there's still a quick fix left to implement.
[rubberduck-vba/Rubberduck] build for commit 303b589d on unknown branch: AppVeyor build succeeded
 
10:52 PM
TTQW
 
Thanks, @WaynePhillipsEA, but I don't VBA.
 
> @Hosch250 sounds good could I ask to establish a criterion what makes a good/acceptable data-driven test compared to a unit test already set up in RD tests
 
11:40 PM
@this @Mat'sMug btw, this post is why I originally started using #Get for reading large text files: stackoverflow.com/questions/1376756/…
This is my whole original function, for reference:
Function SaveFileToString(ByVal fileCurrent As Scripting.File) As String

    '-- Copy Text File Contents to String --
    'Get Available File Integer for Opening
    Dim intSystemFileNumber As Integer 'System-assigned number for file management
    intSystemFileNumber = FreeFile()
    'Open Text File
    Open fileCurrent For Binary As #intSystemFileNumber
    On Error GoTo ErrorHandler
    Dim strEntireFile As String
    'Resize string to length of text file
    strEntireFile = Space$(fileCurrent.Size)
Thanks again for the ADO advice, @this. I'm still playing with it.
 
11:54 PM
@puzzlepiece87 rule of thumb, take the code from answers, not questions... esp. on SO
Also OP's definition of "very, very large file" seems several orders of magnitude under yours
 
00:00 - 17:0017:00 - 00:00

« first day (1316 days earlier)      last day (1864 days later) »