You are so CLOSE to a vb6 Replacement...

You need some new stunning features ? Tell us here.
axisdj
User
User
Posts: 20
Joined: Tue Dec 19, 2017 7:03 pm

You are so CLOSE to a vb6 Replacement...

Post by axisdj »

Hello Group,

I have been looking for a proper vb6 replacement for about 12 years now. I have seen pureBasic in the past but just had a ne look at it in the last few days. Looks like much prgress has been made, and in many ways in the current state it is superior to vb6.

Now I have a question to ask: are there plans to evolve purebasic to have closer functionality to vb6. I really believe your user base would explode if you could add a few features.

here are my suggestions:

1. Make it so that when I double click on a user control in a form designer a default event is created and the pb file
2. make is so the code for opening a new window is automatic.. again maybe the pb file gets auto created
3. I am sure there is more suggestions, but as 15 year vb6 developer, if I tried PB and had the listed above I would be exstatic

I know there may be many users here who don't want some of this automatic code generation, so it would be great if you could have a vb6 mode option


Like I said I have only studied PB for a couple of hours but was wondering if there is hope that a version that comes closer to VB6 is ever possible. You guys are SO CLOSE>>>
User avatar
skywalk
Addict
Addict
Posts: 3972
Joined: Wed Dec 23, 2009 10:14 pm
Location: Boston, MA

Re: You are so CLOSE to a vb6 Replacement...

Post by skywalk »

For me, PB blew by VB6 around v4.5.
Spend time focusing on your project's meaning, and ignore the temptation to throw gadgets at every whim.
Once you learn the windows & gadget commands and processing event loops, you will run circles around your previous "RAD" approach. Text is your friend.
The nice thing about standards is there are so many to choose from. ~ Andrew Tanenbaum
Dude
Addict
Addict
Posts: 1907
Joined: Mon Feb 16, 2015 2:49 pm

Re: You are so CLOSE to a vb6 Replacement...

Post by Dude »

axisdj wrote:your user base would explode if you could add a few features
Why do newbies always waltz in here and proclaim that PureBasic's user base is tiny? :evil:

It's like there's this online reputation that PureBasic is new or an amateur language, but it's been around for over 10 years and Fred makes a living from it.

PureBasic has been a solid Visual Basic replacement for many years now. I wouldn't go back to VB with its declarations, runtimes, and bloated executables if you paid me. (Well, maybe if you paid me a million dollars).
axisdj
User
User
Posts: 20
Joined: Tue Dec 19, 2017 7:03 pm

Re: You are so CLOSE to a vb6 Replacement...

Post by axisdj »

skywalk wrote:For me, PB blew by VB6 around v4.5.
Spend time focusing on your project's meaning, and ignore the temptation to throw gadgets at every whim.
Once you learn the windows & gadget commands and processing event loops, you will run circles around your previous "RAD" approach. Text is your friend.
I understand.. and I am working on understanding the approach. But I think PB can take over the VB6 market that is left with a few minor changes. I am sure you had the same experience, but vb6 spoils us with many things that get done automatically. If a new user can try PB and get close to how vb6 works this proucts popularity will skyRocket.

I create products that lean to user prefeerence and what I have learned is no matter how immature or simplistic the users request, if you implement the feature workflow as they expect, your product will catch on like wildfire, if on the other hand you force them to conform to your 'Better' way, you will not grow your user base.

my 2 cents
axisdj
User
User
Posts: 20
Joined: Tue Dec 19, 2017 7:03 pm

Re: You are so CLOSE to a vb6 Replacement...

Post by axisdj »

Dude wrote:
axisdj wrote:your user base would explode if you could add a few features
Why do newbies always waltz in here and proclaim that PureBasic's user base is tiny? :evil:

It's like there's this online reputation that PureBasic is new or an amateur language, but it's been around for over 10 years and Fred makes a living from it.

PureBasic has been a solid Visual Basic replacement for many years now. I wouldn't go back to VB with its declarations, runtimes, and bloated executables if you paid me. (Well, maybe if you paid me a million dollars).
I am sorry, I meant no insult at all...

It is just I have been looking for a replacement for so long, and I see a product that is so close I am excited.

From looking at the PB framework, it is no amateur language, it has everything needed to compete in todays world, and in many ways beats all other cross platform options. I think if there were just a couple of minor automation's done, ( or maybe even a a way for users to create plugins to automate) a vb6 dev could move to pb in hours and be productive.

Please know there is not insult about PB, it is absolutely amazing.
axisdj
User
User
Posts: 20
Joined: Tue Dec 19, 2017 7:03 pm

Re: You are so CLOSE to a vb6 Replacement...

Post by axisdj »

skywalk wrote:For me, PB blew by VB6 around v4.5.
Spend time focusing on your project's meaning, and ignore the temptation to throw gadgets at every whim.
Once you learn the windows & gadget commands and processing event loops, you will run circles around your previous "RAD" approach. Text is your friend.
are there any cheat sheets out there that will cross reference vb6 commands and methods to PB?
User avatar
skywalk
Addict
Addict
Posts: 3972
Joined: Wed Dec 23, 2009 10:14 pm
Location: Boston, MA

Re: You are so CLOSE to a vb6 Replacement...

Post by skywalk »

You can still deliver your users' preferences in your apps. That does not mean you have to bog down the PB IDE with VB6 like RAD. I create all my gui's with Macro's. And then edit their events as needed. I have no need for the graphical Form editor except maybe for an XY position if I am lazy.

I will get you some VB6 cheat sheet that I have from way back.
The nice thing about standards is there are so many to choose from. ~ Andrew Tanenbaum
User avatar
skywalk
Addict
Addict
Posts: 3972
Joined: Wed Dec 23, 2009 10:14 pm
Location: Boston, MA

Re: You are so CLOSE to a vb6 Replacement...

Post by skywalk »

Code: Select all

; COMPARISONS OF VB6 <-> PB:
; VB6 Code                    --> PB Code
; Do Until Eof(inf)             While Eof(inf) = 0 
;   ; do stuff here               ;do stuff here
; Loop                          Wend
;-PB Gadgets(description)       = VB6 Control - prefix used
; 1. ButtonGadget(BU)           = CommandButton - cmd
;    gn = ButtonGadget         (#PB_Any, x, y, Width, Height, Text$ [, Flags])
; 2. ButtonImageGadget(BI)      = CommandButton w/API
;    gn = ButtonImageGadget    (#PB_Any, x, y, Width, Height, ImageID [, Flags])
; 3. CalendarGadget(CA)         = DTPicker or NA - dtp
;    gn = CalendarGadget       (#PB_Any, x, y, Width, Height [, Date [, Flags]])
; 4. CanvasGadget(CG)           = PictureBox pb or ImageBox img
;    gn = CanvasGadget         (#PB_Any, x, y, Width, Height [, Flags])
; 5. CheckBoxGadget(XB)         = CheckBox - chk 
;    gn = CheckBoxGadget       (#PB_Any, x, y, Width, Height, Text$ [, Flags])
; 6. ComboBoxGadget(CB)         = ComboBox - cmb
;    gn = ComboBoxGadget       (#PB_Any, x, y, Width, Height [, Flags])
; 7. ContainerGadget(CN)(1 Panel) = NA
;    gn = ContainerGadget      (#PB_Any, x, y, Width, Height [, Flags])
; 8. DateGadget(DA)(StringGadget) = MaskedEdit control Or TextBox edit w/code
;    gn = DateGadget           (#PB_Any, x, y, Width, Height [, Mask$ [, Date [, Flags]]])
; 9. EditorGadget(E)            = TextBox - txt
;    Automatic vertical and horizontal scrollbars
;    No context menu. (right mouse click), but does support ctrl+c, etc.
;    gn = EditorGadget         (#PB_Any, x, y, Width, Height [, Flags])      
; 10.ExplorerComboGadget(XC)    = DriveListBox, DirectoryListBox, FileListBox - requires code To assemble pieces
;    gn = ExplorerComboGadget  (#PB_Any, x, y, Width, Height, Directory$, [, Flags])
; 11.ExplorerListGadget(XL)     = NA
;    gn = ExplorerListGadget   (#PB_Any, x, y, Width, Height, Directory$, [, Flags])
; 12.ExplorerTreeGadget(XT)     = DriveListBox ++
;    gn = ExplorerTreeGadget   (#PB_Any, x, y, Width, Height, Directory$, [, Flags])
; 13.FrameGadget(FR)            = Frame - fram
;    gn = FrameGadget          (#PB_Any, x, y, Width, Height, Text$ [, Flags])
; 14.HyperLinkGadget(HL)        = Label w/code
;    gn = HyperLinkGadget      (#PB_Any, x, y, Width, Height, Text$, Color [, Flags])
; 15.IPAddressGadget(IP)        = NA Or MaskedEditBox w/code
;    gn = IPAddressGadget      (#PB_Any, x, y, Width, Height)
; 16.ImageGadget(IM)            = Image - img, PictureBox - pb
;    gn = ImageGadget          (#PB_Any, x, y, Width, Height, ImageID [, Flags])
; 17.ListIconGadget             = ListView or MSGridControl
;    gn = ListIconGadget       (#PB_Any, x, y, Width, Height, Title$, TitleWidth [, Flags])
; 18.ListViewGadget(LV)         = ListBox - lb
;    gn = ListViewGadget       (#PB_Any, x, y, Width, Height [, Flags])
; 19.MDIGadget(MD)              = MDI Form w/code
;    gn = MDIGadget            (#PB_Any, x, y, Width, Height, SubMenu, MenuItem [, Flags])
; 20.OptionGadget(OP)           = OptionButton - opt
;    gn = OptionGadget         (#PB_Any, x, y, Width, Height, Text$)
; 21.PanelGadget(PA)            = SSTab - sst
;    gn = PanelGadget          (#PB_Any, x, y, Width, Height)
; 22.ProgressBarGadget(PB)      = ProgressBar - pbar
;    gn = ProgressBarGadget    (#PB_Any, x, y, Width, Height, Minimum, Maximum [, Flags])
; 23.ScrollAreaGadget(SA)       = NA 
;    gn = ScrollAreaGadget     (#PB_Any, x, y, Width, Height, ScrollAreaWidth, ScrollAreaHeight [, ScrollStep [, Flags]])
; 24.ScrollBarGadget(SB)        = HScrollBar, VScrollBar - hsb,vsb
;    gn = ScrollBarGadget      (#PB_Any, x, y, Width, Height, Minimum, Maximum, PageLength [, Flags])
; 25.ShortcutGadget(SK)         = NA
;    gn = ShortcutGadget       (#PB_Any, x, y, Width, Height, Shortcut)
; 26.SpinGadget(SP)             = UpDown - spin
;    gn = SpinGadget           (#PB_Any, x, y, Width, Height, Minimum, Maximum [, Flags])
; 27.SplitterGadget(SR)         = NA
;    gn = SplitterGadget       (#PB_Any, x, y, Width, Height, #Gadget1, #Gadget2 [, Flags])
; 28.StringGadget(S)            = TextBox w/single line only, txt
;    gn = StringGadget         (#PB_Any, x, y, Width, Height, Content$ [, Flags])
;    Add #ES_MULTILINE flag, and it will handle more lines, but no scrollbars when text overflows.
;    Use SetWindowLongPtr_() to change styles if mixing TextGadget Constants fails.
; 29.TextGadget(T) (no events)  = Label - lbl
;    gn = TextGadget           (#PB_Any, x, y, Width, Height, Text$ [, Flags])
; 30.TrackBarGadget(TB)         = NA, use tiny scrollbar w/code
;    gn = TrackBarGadget       (#PB_Any, x, y, Width, Height, Minimum, Maximum [, Flags])
; 31.TreeGadget(TV)             = TreeView, trv
;    gn = TreeGadget           (#PB_Any, x, y, Width, Height [, Flags])
; 32.WebGadget(WG)              = NA or any IE component w/API code
;    gn = WebGadget            (#PB_Any, x, y, Width, Height, URL$ [, Flags])
;
; Additional Gadgets...
;
; 1. Window(W)                  = Form - frm
;    wN = OpenWindow            (#PB_Any, x, y, InnerWidth, InnerHeight, Title$ [, Flags [, ParentWindowID]])
; 2. AddGadgetItem              = NA
;    wN = AddGadgetItem         (#PB_Any, Position, Text$ [, ImageID [, Flags]])
;    ^^^ with MDI only
;          AddGadgetItem        (gn, Position, Text$ [, ImageID [, Flags]])
; 3. OpenGadgetList(O)          = NA
;          OpenGadgetList       (gn [, Item])
; 4. CloseGadgetList(C)         = NA
;          CloseGadgetList      ()
; 5. StatusBar(ST)              = NA
;    gn = CreateStatusBar      (#PB_Any, WindowID(wN))
;          AddStatusBarField    (#PB_Ignore = Width)
; 6. ScintillaGadget            = NA
;    gn = ScintillaGadget      (#PB_Any, x, y, Width, Height, @Callback())
; 7. Timer(TM)
;    AddWindowTimer(#Window, Timer, Timeout)
; 8. KeyboardShortcut(KS)       = NA
;    AddKeyboardShortcut(#Window, Key, Event)
;
;- Modal vs Non-Modal windows:
;  MessageRequester("try","PB is always Modal.")
;  MessageBox_(hWnd,"Same as PB MsgBox, TopMost window.","try", #MB_ICONASTERISK | #MB_APPLMODAL); | #MB_SYSTEMMODAL);| #MB_TASKMODAL)
;  MessageBox_(0,"No owner window allows parent app to respond to events.","try", #MB_ICONASTERISK | #MB_APPLMODAL); | #MB_SYSTEMMODAL);| #MB_TASKMODAL)

Code: Select all

; DEF:  When to use array|list|map?
;       Map:    Unique list, no order. Text defines elements.
;               Ex. Menu items, except watch for sub-menus with same names.
;               MapSize(map()) returns base 1 count.
;       List:   Ordered list. Usually small and unknown size at creation.
;               Ex. Retrieving a table's contents without knowing count.
;                   Or appending to existing list without care to size.
;               ListSize(ll()) returns base 1 count.
;       Array:  When speed or list size demand.
;               ArraySize(ar()) returns base 0 count.
;
; NOTES:  Contains general use Array|List|Map functions/subroutines
;         Array|List|Map are passed as ByRef parameters to Procedures.
;         Meaning, any changes in the Procedure affect the original array|list|map.
;         If using Shared in the Procedure or Global arrays,
;         then no need to be pass 'Array|List|Map' parameter.
;
;         To conform with C/C++ Structure format and allow direct API structure porting: 
;         Static arrays defined in structures are different than Dynamic arrays defined by Dim/ReDim.
;           a[2] allocates an array from 0 to 1.
;         But,
;           Dim a(2) allocates an array from 0 To 2.
;
;         To get size of a static array use SizeOf():
;         Structure myStruc
;           aX.b[128]
;           aY.b[5]
;           s.s{32}   ; fixed length strings are ok, but not variable length.
;         EndStructure
;         Define me.myStruc
;         Debug Sizeof(me\aX)
;         For nested Structures, use combinations of Sizeof() and Len()
;
;         Dynamic Multidimensional arrays in Structures:
;         Structure ThruLossDef
;           nPts.i                                        ; num freq pairs
;           RFPath$                                       ; RFpath = "TXG-ANT",etc.
;           Array f.d(0,0)                                ; array[S21(dB), F(MHz)]
;           Array S21.d(0,0)                              ; array[S21(dB), F(MHz)]
;         EndStructure
;         Global Dim iTL.ThruLossDef(0)                   ; 1D, varies by RFPath
;         Dim itl(0)\f(10,10)   ;<-- Dim 1st, then can ReDim last index later
;
;         Swap cmd does NOT work on entire array. Only individual elements.
;         Use CopyArray() instead.
;
; Multidimensional arrays in memory:
;   Ex. Human perceived 2D array(matrix) of 3 rows x 3 cols:
;           0  1  2 <-- Col
;       0 | 1  2  3 |   R
;       1 | 4  5  6 |   o
;       2 | 7  8  9 |   w
;
; Col-major order: (VB6/Matlab/Fortran     step memory contiguously by each col.)
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;   |   1   |   4   |   7   |   2   |   5   |   8   |   3   |   6   |   9   |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; Row-major order: (PureBasic/C/C++/Python step memory contiguously by each row.)
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;   |   1   |   2   |   3   |   4   |   5   |   6   |   7   |   8   |   9   |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; 
; While C syntax for 2D arrays: ar2D[nrows][ncols].
; Defining PB 2D arrays are best understood if Dim'd ar2D(nCols-1, nRows-1).
; This allows dual access of 2D data within a 1D array or syntactical 2D(c,r) array.
; Ex. Dim ar2D(nCols-1, nRows-1) ==> Dim ar1D(nRows * Row + Col)

Code: Select all

;-{ STRUCTURES of ALL DATATYPES
Structure ScanAllTypes ; #PB_Compiler_Unicode = 1 (PB v5.4+ drops Ascii compiles)
  ; Allows 1 Define for all datatypes to be scanned. Define *buf.ScanAllTypes = @somevariable or *somememory
  ; Consider as a StructureUnion. Takes no memory and overflow is not checked.
  ; Ex. *buf\d[i] ; 'i' can be incremented in a loop without compiler error.
  ;          ; Type,   Bytes,  Min,                     Max,                     C Type
  b.b[0]     ; Byte,       1, -128,                     127,                     char, bool(C++)
  a.a[0]     ; Ascii,      1,  0,                       255,                     unsigned char, UCHAR, BYTE
  c.c[0]     ; Character,  2,  0,                       65535,                   unsigned short, USHORT
  u.u[0]     ; Unicode,    2,  0,                       65535,                   unsigned short, USHORT
  w.w[0]     ; Word,       2, -32768,                   32767,                   short
  l.l[0]     ; Long,       4, -2147483648,              2147483647,              long, int (long & $FFFFFFFF = unsigned)
  ;;ul.ul[0] ; ULong,      4,  0,                       4294967295,              unsigned long, unsigned int, DWORD(C++)
  i.i[0]     ; Integer,    4, -2147483648,              2147483647,              long, int(x86 or 32-bit),sizeof*
  ;i.i[0]    ; Integer,    8, -9223372036854775808,     9223372036854775807,     long long(x64 or 64-bit),sizeof*
  q.q[0]     ; Quad,       8, -9223372036854775808,     9223372036854775807,     long long
  ;;uq.uq[0] ; UQuad,      8,  0,                       18446744073709551615,    unsigned long long, ULONGLONG
  f.f[0]     ; Float,      4,           -1.175494e-38,            3.402823e+38,  float      (6 decimal places)
  d.d[0]     ; Double,     8, -2.2250738585072013e-308, 1.7976931348623157e+308, double     (15 decimal places)
  ;;ld.ld[0] ; LDouble,   10, -3.4e-4932,               1.1e+4932,               long double(19 decimal places)
  ;;s        ; String$,    2/char + 2 for chr(0),       ,                        wchar_t
  s.s{1}[0]  ; {FixedLen}, 2/char,                      ,                        char *, char var[] <-- Convert to Ascii
  ;s.s[0]    ; FAILS, -> *p\s = @x$, *p\s[1] = IMA.
EndStructure
;-} STRUCTURES
The nice thing about standards is there are so many to choose from. ~ Andrew Tanenbaum
User avatar
Lunasole
Addict
Addict
Posts: 1091
Joined: Mon Oct 26, 2015 2:55 am
Location: UA
Contact:

Re: You are so CLOSE to a vb6 Replacement...

Post by Lunasole »

I was too lazy now to read all the thread, but comparing VB6 to PB - as for me it's one language really usable to replace VB6. Previously I also came to PB when was looking for such replacement.
There also is "FreeBasic" which claims itself as VB ancestor, but it's raw and lacks a lot of things that PB offers for a long time.
"W̷i̷s̷h̷i̷n̷g o̷n a s̷t̷a̷r"
collectordave
Addict
Addict
Posts: 1309
Joined: Fri Aug 28, 2015 6:10 pm
Location: Portugal

Re: You are so CLOSE to a vb6 Replacement...

Post by collectordave »

I used the MS VB products from VB 3.0 on through VB 6.0 proffessional then onto VB.net and became totally exasperated when yet again a new version of windows came out and my programmes would not work.

Found an old copy of PB 4.0 on disc and tried it after about ten years.

A few quirks in learning PB and I tried to treat it like VB as well, check my posts, so amateurish.

Started using PB and found it easy to use just a few things missing that I used in VB but then wrote my own bits to do these such as print and preview and a little grid.

I have now not used VB at all for over a year as PB does it all and my programmes work on Linux and MAC as well sometimes with a little modification.

I see harping back to VB as one big mistake I made. If I want auto code generation I can write it myself in fact started one project to write a database wizard to take a simple database and autocreate basic PB code for an application to use the database etc.

After giving PB a fair try I will no longer go back to VB.

Just my thoughts

Regards

CD
Any intelligent fool can make things bigger and more complex. It takes a touch of genius — and a lot of courage to move in the opposite direction.
deeproot
Enthusiast
Enthusiast
Posts: 269
Joined: Thu Dec 17, 2009 12:00 pm
Location: Llangadog, Wales, UK
Contact:

Re: You are so CLOSE to a vb6 Replacement...

Post by deeproot »

skywalk wrote:Once you learn the windows & gadget commands and processing event loops, you will run circles around your previous "RAD" approach. Text is your friend.
Have to agree totally with this and other responses here.

Like many others I also came to PB after long experience with VB6 (plus VB5, VB4, Delphi and various other languages). VB6 was a great product in its time, but PB has long surpassed it. OK, there is not always a one-to-one function equivalence and it does things differently. But it is an easy switch for a VB6 programmer. PB is not a direct replacement - it's better - actually much better!

@axisdj - Welcome to the forum. My humble advice - take your time, learn the PB way, feel the power, enjoy the difference!
User avatar
mk-soft
Always Here
Always Here
Posts: 5335
Joined: Fri May 12, 2006 6:51 pm
Location: Germany

Re: You are so CLOSE to a vb6 Replacement...

Post by mk-soft »

Hi,

habe auch manchmal keine lust die erforderlichen Codes für die Event-Verarbeitung selber zu schreiben.
Dazu habe ich mir eine EventDesigner der auf die Form (.pdf) aufsetzt. Siehe Signatur

sometimes I don't feel like writing the necessary codes for the event processing myself.
For this purpose I have an EventDesigner based on the form (. pdf). See signature
My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
axisdj
User
User
Posts: 20
Joined: Tue Dec 19, 2017 7:03 pm

Re: You are so CLOSE to a vb6 Replacement...

Post by axisdj »

mk-soft, thank you

So just to clarify, I create the form with gadgets on it.. then run it through your app and it will create the events for me?

I will try it, but just want to make sure I understand
User avatar
mk-soft
Always Here
Always Here
Posts: 5335
Joined: Fri May 12, 2006 6:51 pm
Location: Germany

Re: You are so CLOSE to a vb6 Replacement...

Post by mk-soft »

That's what I meant.

You can also create several forms and integrate them into my tool. Afterwards all necessary program codes are created. A common file is created from the different forms.
If a form is changed or extended, the code only needs to be updated again with the tool.

I haven't reworked long tool. If there are any problems, please report them.

P.S.
It is important that the following settings are made under Settings from the PB-IDE under Form:

- OFF: New gadgets use #PB_Any by default
- OFF: New gadgets use a variable as captions
- OFF: Generate event procedure
My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
Q*bert
User
User
Posts: 27
Joined: Sat Dec 30, 2006 12:17 am
Location: Milwaukee, WI USA

Re: You are so CLOSE to a vb6 Replacement...

Post by Q*bert »

mk-soft wrote:For this purpose I have an EventDesigner based on the form (. pdf). See signature
I'd love to try your EventDesigner, but your server is refusing the connection. Is it down temporarily or is there another way to access the files?
Post Reply