Results 1 to 27 of 27

Thread: Jumping in

  1. #1

    Thread Starter
    Member
    Join Date
    Feb 2018
    Posts
    34

    Jumping in

    OK, I've decided I am going to try my hand at creating an Application to read in data and then display it on the screen. The data type is Gerber and it is a txt file that I will have to parse and pull out the data and coordinates and the have it display. Has anyone worked with Gerber before and can you give me any pointers? I am as green as they come and haven't worked with Visual Basic in about 20 years. I have Visual Studio 2019 installed and have created a very basic forms project and can browse to a file and send the path to a text box, but I don't know how to open the file to parse it, can someone assist a greenhorn like me?

    Thanks

    Dave

  2. #2
    eXtreme Programmer .paul.'s Avatar
    Join Date
    May 2007
    Location
    Chelmsford UK
    Posts
    25,464

    Re: Jumping in

    I’ve never heard of Gerber... Can you post an example of the file structure?

  3. #3
    Fanatic Member Delaney's Avatar
    Join Date
    Nov 2019
    Location
    Paris, France
    Posts
    845

    Re: Jumping in

    Gerber is the standard description file for a electronic circuit board (like autocad for a mechanical system). It describes the copper lines on the PCB. It is a text file.

    example of circuit and associated files : https://translate.google.fr/translat...a-quoi-ca-sert
    Last edited by Delaney; Nov 22nd, 2020 at 04:01 PM.
    The best friend of any programmer is a search engine
    "Don't wish it was easier, wish you were better. Don't wish for less problems, wish for more skills. Don't wish for less challenges, wish for more wisdom" (J. Rohn)
    “They did not know it was impossible so they did it” (Mark Twain)

  4. #4
    Fanatic Member Delaney's Avatar
    Join Date
    Nov 2019
    Location
    Paris, France
    Posts
    845

    Re: Jumping in

    If you use the extended version (RS274X) , this might be of good use to parse the file :
    RS274X format specification
    The Gerber Format Specification
    Last edited by Delaney; Nov 22nd, 2020 at 03:55 PM.
    The best friend of any programmer is a search engine
    "Don't wish it was easier, wish you were better. Don't wish for less problems, wish for more skills. Don't wish for less challenges, wish for more wisdom" (J. Rohn)
    “They did not know it was impossible so they did it” (Mark Twain)

  5. #5

    Thread Starter
    Member
    Join Date
    Feb 2018
    Posts
    34

    Re: Jumping in

    .paul

    Here is a sample of the file, it's an actual file although very short that draws 2 rectangles.

    G04 ParseTest ex. 1: Two square boxes*
    Code:
    %FSLAX26Y26*%
    %MOMM*%
    %TF.Part,Other,example*%
    %LPD*%
    %ADD10C,0.010*%
    D10*
    X0Y0D02*
    G01*
    X5000000Y0D01*
    Y5000000D01*
    X0D01*
    Y0D01*
    X6000000D02*
    X11000000D01*
    Y5000000D01*
    X6000000D01*
    Y0D01*
    M02*

    Delaney,

    Thanks for the references, I already had 1 of them but not the other. The first one is outdated but still good to have. How do you know gerber?

    Thanks

    Dave
    Last edited by dday9; Nov 22nd, 2020 at 07:54 PM.

  6. #6
    Fanatic Member Delaney's Avatar
    Join Date
    Nov 2019
    Location
    Paris, France
    Posts
    845

    Re: Jumping in

    long long time ago in an other galaxy, I designed PCB for hyperfrequency circuitry (worked on 2D CAD ME10)
    The best friend of any programmer is a search engine
    "Don't wish it was easier, wish you were better. Don't wish for less problems, wish for more skills. Don't wish for less challenges, wish for more wisdom" (J. Rohn)
    “They did not know it was impossible so they did it” (Mark Twain)

  7. #7

    Thread Starter
    Member
    Join Date
    Feb 2018
    Posts
    34

    Re: Jumping in

    Similar for me. I used to work for a software company that dealt with PCB's and I loved it. Many, many years ago. Now I am trying to get used to the new Visual Studio, I used to use Visual Basic 6, that was the latest at the time. I never actually wrote the software just was technical support and Quality Testing but I did delve into it a bit.

    Now I want to write my own application as a fun project to read in the gerber data and show it on the screen and see where it goes from there.

    I've gotten so I can open a test file and display the contents in a text window, now I just have to figure out how to parse the file correctly and then draw the data on the screen.

    BTW, I love the quote at the bottom in your signature.

    Thanks

    Dave

  8. #8
    eXtreme Programmer .paul.'s Avatar
    Join Date
    May 2007
    Location
    Chelmsford UK
    Posts
    25,464

    Re: Jumping in

    Quote Originally Posted by Dave14867 View Post
    .paul

    Here is a sample of the file, it's an actual file although very short that draws 2 rectangles.

    G04 ParseTest ex. 1: Two square boxes*
    %FSLAX26Y26*%
    %MOMM*%
    %TF.Part,Other,example*%
    %LPD*%
    %ADD10C,0.010*%
    D10*
    X0Y0D02*
    G01*
    X5000000Y0D01*
    Y5000000D01*
    X0D01*
    Y0D01*
    X6000000D02*
    X11000000D01*
    Y5000000D01*
    X6000000D01*
    Y0D01*
    M02*
    I don't understand enough of the formatting used there. Ideally, you can identify which of the lines contains the coordinates, then draw a representation on your form. Was that what you're asking for?

  9. #9
    Super Moderator dday9's Avatar
    Join Date
    Mar 2011
    Location
    South Louisiana
    Posts
    11,711

    Re: Jumping in

    Inferring from the data:
    1. It appears as if the top 5 lines that start and end with a percentage sign represent metadata.
    2. Line 7 appears as if it starts the rectangle at 0, 0.
    3. Line 9 appears as if it draws a line to 5000000, 0.
    4. Line 10 appears as if it draws a line to 5000000, 5000000.
    5. Line 11 appears as if it draws a line to 0, 5000000.
    6. Line 12 appears as if it draws a line to 0, 0 which ultimately finishes the first rectangle.


    Is this more or less correct? Even still, I don't understand what lines 6 or 8 do.
    "Code is like humor. When you have to explain it, it is bad." - Cory House
    VbLessons | Code Tags | Sword of Fury - Jameram

  10. #10
    PowerPoster
    Join Date
    Sep 2005
    Location
    Modesto, Ca.
    Posts
    5,195

    Re: Jumping in

    Yeah, I'm not sure what you want to do. Just display what's in the file? Or, draw what's in the file? What are you trying to accomplish?

  11. #11
    Sinecure devotee
    Join Date
    Aug 2013
    Location
    Southern Tier NY
    Posts
    6,582

    Re: Jumping in

    I'm pretty sure he wants to draw what is in the file.
    He mentions that the code in post #5 "draws two rectangles", so my assumption is he wants to draw the two rectangles defined in the file.

    dday inferred some of it just looking at the data, but since the Gerber format specification was linked to above, and the code in post five is quite similar to examples in the specification, more information could quickly be garnered from there.
    Code:
    %FSLAX26Y26*%              FS(format specification)L(Leading zeros omitted)A(Absolute coordinates) X26(X is 00.000000)Y26(00.000000)
    %MOMM*%                    Units are Millimeters
    %TF.Part,Other,example*%   File is not a PCB layer, just an example
    %LPD*%                     Start of new layer, level polarity is dark
    %ADD10C,0.010*%            Define Aperture with D-code 10 as a 0.01 mm circle
    D10*                       Set Aperture with D-code 10 as current aperture (lines drawn will be .01mm thick, and circular ends)
    X0Y0D02*                   Move current point to 0,0 (D02 means move, don't draw)
    G01*                       Sets linear interpolation mode (draw linearly between points, rather than a curve between points)
    X5000000Y0D01*             Draw to (5,0) (remember units are millimeter with 6 fractional digits) 
    Y5000000D01*               Draw to (5,5)
    X0D01*                     Draw to (0,5)
    Y0D01*                     Draw to (0,0)
    X6000000D02*               Move to (6,0)
    X11000000D01*              Draw to (11,0)
    Y5000000D01*               Draw to (11,5)
    X6000000D01*               Draw to (6,5)
    Y0D01*                     Draw to (6,0)
    M02*                       End of File
    So you end up with two 5mm squares, spaced 1mm apart horizontally.
    Technically, the aperture setting of .01 mm would be a pretty thin line to try to represent, i.e. your 5mm square would have to be 500 pixels in size to have the line be 1 pixel in thickness. I assume all the lines would be drawn 1 pixel wide so that you can see them, regardless of zoom unless you really zoomed in enough to have them be more than 0.01 mm per pixel.
    "Anyone can do any amount of work, provided it isn't the work he is supposed to be doing at that moment" Robert Benchley, 1930

  12. #12

    Thread Starter
    Member
    Join Date
    Feb 2018
    Posts
    34

    Re: Jumping in

    passel is correct, I want to draw the lines and recreate what is represented in the file. So I have to be able to parse out the file, set up the units, layer info, etc then start drawing each line to the end of the file. In a real PCB file there will be different D-Codes, G-Codes etc. Would the "TextFieldParser" be correct for this or would it be better to write my own?

    Below is another Example File.




    Code:
    G04 Generated by UcamX v2017.04-170404 on 2017.4.7*
    G04 Ucamco copyright*
    %TF.GenerationSoftware,Ucamco,UcamX,v2017.04-170404*%
    %TF.CreationDate,2017-04-18T10:09:12+00:00*%
    %TF.FileFunction,Other,SMD prim20*%
    %TF.FilePolarity,Positive*%
    %FSLAX46Y46*%
    %MOMM*%
    G01*
    G04 Create aperture macro*
    %AMRECTROUNDCORNERS*
    0 Rectangle with rounded corners*
    0 $1 width *
    0 $2 height *
    0 $3 corner radius *
    0 $4 flash origin X offset *
    0 $5 flash origin Y offset *
    0 $6 rotation angle *
    0 Create two overlapping rectangles that omit the rounded corner areas*
    20,1,$2-2x$3,$4-$1/2,$5,$4+$1/2,$5,$6*
    20,1,$2,$4,$5-$2/2,$4,$5+$2/2,$6*
    0 Add circles at the corners. *
    1,1,2x$3,$4+$1/2-$3,$5+$2/2-$3,$6*
    1,1,2x$3,$4-$1/2+$3,$5+$2/2-$3,$6*
    1,1,2x$3,$4-$1/2+$3,$5-$2/2+$3,$6*
    1,1,2x$3,$4+$1/2-$3,$5-$2/2+$3,$6*%
    G04 Create aperture*
    %ADD10RECTROUNDCORNERS,4X3X0.5X0X0X0*%
    %ADD11RECTROUNDCORNERS,4X3X0.5X0X0X10*%
    %ADD12RECTROUNDCORNERS,4X3X0.5X0X0X30*%
    %ADD13RECTROUNDCORNERS,4X3X0.5X0X0X45*%
    %ADD20RECTROUNDCORNERS,4X3X0.5X1.0X2.0X0*%
    %ADD21RECTROUNDCORNERS,4X3X0.5X1.0X2.0X10*%
    %ADD22RECTROUNDCORNERS,4X3X0.5X1.0X2.0X30*%
    %ADD23RECTROUNDCORNERS,4X3X0.5X1.0X2.0X45*%
    G04 Select aperture*
    D10*
    G04 Flash aperture*
    X0Y0D03*
    D11*
    X6000000D03*
    D12*
    X12000000D03*
    D13*
    X18000000D03*
    D20*
    X0Y5000000D03*
    D21*
    X6000000Y5000000D03*
    D22*
    X12000000D03*
    D23*
    X18000000D03*
    %TF.MD5,2A4CB336BBB01B553283D651B0C6E89A*%
    M02*




    The data above represents a very simple board.

    Should I use a "PictureBox" to draw this in or is there something else to use?

    Thanks

    Dave

  13. #13

    Thread Starter
    Member
    Join Date
    Feb 2018
    Posts
    34

    Re: Jumping in

    Another question, when I figure out how to read the file, where should I store the data? Should it be stored in an Array or should it be stored in a table that get created? I think that ultimately I will have a table store at least part of the data (Placement). Is writing to and reading from an array faster?

    Also, I want to be able to convert the units from whatever the native file is in to either Inches, Mils, MM or Microns depending on what the user chooses, this would be done after the data is read in. Should I convert the data as it is being read in to a standard unit?

    Thanks

    Dave

  14. #14
    Sinecure devotee
    Join Date
    Aug 2013
    Location
    Southern Tier NY
    Posts
    6,582

    Re: Jumping in

    Well, you've certainly chosen a rather complex application to entertain yourself with developing. I think it would be challenging for seasoned programmers, let alone someone who classifies themselves as "green as they come".

    I'm not a database person, so don't know how utilization a table would be implemented here, versus using an array.
    I certainly wouldn't be using arrays for most of this, I'm sure.
    On the surface, I see that some classes would be used to hold related data for the various objects created, and for management, there would be Lists and Dictionaries involved instead of arrays.

    For instance, the file is creating six apertures, essentially two aperture sizes, at four rotations each. I would think a Dictionary would be applicable to use the aperture designation as the key, and the value would be whatever class or object you use to store the details of the specific aperture.

    I would display the drawing in a Picturebox, but the drawing itself would likely be done using a number of bitmaps, some may represent different layers that would be combined in the Picturebox. You might want to predraw the apertures in small bitmaps, and then you could just draw the image when you need to "flash" it, or set a texturebrush to it when you need to interpolate it.

    As for converting everything to a universal coordinate system, that is a design decision. It might be useful, but it might loose some precision with multiple conversions, i.e. from system1 to universal to system2 requires two conversions compared to just one going from system1 to system2.

    Got to go, so can't say more.
    "Anyone can do any amount of work, provided it isn't the work he is supposed to be doing at that moment" Robert Benchley, 1930

  15. #15

    Thread Starter
    Member
    Join Date
    Feb 2018
    Posts
    34

    Re: Jumping in

    I will have to look into the "Lists" and "Dictionaries". I haven't heard of Dictionaries before so I will have to research that some.

    I like to do this to keep myself busy and hopefully my mind sharp. I still work full time but do this in my spare time. I mostly work with Access and have created several databases for work that I use so I thought I would get into the way back machine and try my hand at creating an application similar to what I used in the past.

    Thanks

    Dave

  16. #16
    Super Moderator dday9's Avatar
    Join Date
    Mar 2011
    Location
    South Louisiana
    Posts
    11,711

    Re: Jumping in

    A dictionary represents a strongly typed collection of key/value pairs where the key is unique.

    An example would be if you wanted to stored numeric values along with its respective English word (e.g. 1 => one, 2 => two, etc.).

    In this case, we'd define the type of the Key as an Integer and the type of the Value as a String:
    Code:
    Dim collection = New Dictionary(Of Integer, String)()
    Then when you would need to add pairs to the collection, you would use the Add method:
    Code:
    collection.Add(1, "One")
    collection.Add(2, "Two")
    If you wanted to check if a key/value pair exists by check all of the pairs' key equals a certain value, you would use the ContainsKey method:
    Code:
    If (collection.ContainsKey(100)) Then
        Console.WriteLine("100 exists and its corresponding word is: {0}", collection(100))
    End If
    Finally, you could even iterate over all the key/value pairs by using a simple For/Each loop:
    Code:
    For Each pair In collection
        Console.WriteLine("Key: {0} | Value: {1}", pair.Key, pair.Value)
    Next
    Here is a live demo of the examples I gave above: https://dotnetfiddle.net/1Yz4h8
    "Code is like humor. When you have to explain it, it is bad." - Cory House
    VbLessons | Code Tags | Sword of Fury - Jameram

  17. #17

    Thread Starter
    Member
    Join Date
    Feb 2018
    Posts
    34

    Re: Jumping in

    dday9,

    What is the benefit of a Dictionary over an array or a table? From my Access experience I can relate to how the data could fit into possibly a table. Is there a need to store the data at all? Once it is read and displayed in a frame can't the contents of the frame be saved and then recalled?

    Thanks

    Dave

  18. #18
    Super Moderator dday9's Avatar
    Join Date
    Mar 2011
    Location
    South Louisiana
    Posts
    11,711

    Re: Jumping in

    I would refer you back to passel's post, specifically this part:
    For instance, the file is creating six apertures, essentially two aperture sizes, at four rotations each. I would think a Dictionary would be applicable to use the aperture designation as the key, and the value would be whatever class or object you use to store the details of the specific aperture.
    "Code is like humor. When you have to explain it, it is bad." - Cory House
    VbLessons | Code Tags | Sword of Fury - Jameram

  19. #19
    Sinecure devotee
    Join Date
    Aug 2013
    Location
    Southern Tier NY
    Posts
    6,582

    Re: Jumping in

    Obviously, my math is not so good....

    Later in the file you need to flash the apertures, specified by their ID. In order to do that you have to have associated the ID with the mechanism necessary to draw the aperture.
    So, a dictionary can be used to look up something (how to draw the aperture) based on the Key (ID).
    Now what you store as the value in the dictionary is up to you.

    The file is defining a macro that defines how to draw an aperture based on six parameters passed to it.
    If then defines the eight apertures using the macro and passing the parameters to it.
    It then actually draws the apertures by flashing them at the end of the file.
    That is when you will have to draw them. What will you be drawing at that point?

    When the macro is defined, you will have to parse it and save the macro so that you can use it later each time it is reference. Again, that may be a dictionary as well, and it might be a dictionary of list.
    So, the key would be "RECTROUNCORNERS", and then the value would be a list of the commands that make up the macro.

    But I think that is too simple.
    I think the dictionary will be dictionary of (string, class) because you'll need a class to keep track of the definition of the macro. A macro can probably have no parameters, or some undefined number of parameters passed to it. In which case, you would probably need a list to hold the values of parameters passed to the macro, so you can access those parameters in the implementation of the macro.
    And the macro itself is made of expressions, so you will need a parser that can parse expressions to calculate values from the parameters passed to get the values to be used as coordinates in the figures being drawn by the macro. So, all the stuff needed to store, process, and represent a macro is going to require at least one class for the macro object itself, and perhaps other supporting classes for things like common parsing logic, or common types of data storage.

    You shouldn't be under the delusion that this will be a simple program to write. It is not unlike writing a small interpreter for a programming language. You are writing an interpreter, that will have to parse and keep track of variables and structures, and process numeric expressions with variable substitution. Like a programming language, the macro is like a subroutine or method that can be called and since an aperture definition can call a macro, its definition is not necessarily a simple construct either.

    You can be working on this for a very long time.
    Last edited by passel; Nov 23rd, 2020 at 10:49 PM.
    "Anyone can do any amount of work, provided it isn't the work he is supposed to be doing at that moment" Robert Benchley, 1930

  20. #20
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    8,598

    Re: Jumping in

    I don't think this is the kind of thing a beginner should under take. I would consider myself very seasoned using various flavors of Visual Basic and Visual Studio and I find this project a bit intimidating. Though to be fair 80% of my intimidation comes from my complete lack of knowledge in the domain of PCB design or PCBs in general but if this is your area of expertise you might actually be able to pull it off, even as a beginner. If you have to learn about PCB design while learning VB then you may have bitten off more than you can chew and I wouldn't expect success unless you're ready to spend 10 hours a day and many sleepless nights on this project.

    Quote Originally Posted by Dave14867 View Post
    What is the benefit of a Dictionary over an array or a table?
    Dictionary objects provide O(1) look up times. Arrays are in the range of O(1) to O(n). In other words the look up times for items in a Dictionary are fixed regardless of how many items the Dictionary contains. If it takes 10 ms to find an item in a Dictionary with 20 items, it would take the same time to find the item in a Dictionary with a million items. Look up times for Arrays on the other hand scale horribly. If you're searching an array of a million items and the item you're looking for is near the end of the array, you would experience disastrous performance. You want to use a Dictionary instead of an array if you're going to be performing look-ups often, especially when a lot of items are involved.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell | I'm not wanted

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  21. #21

    Thread Starter
    Member
    Join Date
    Feb 2018
    Posts
    34

    Re: Jumping in

    Niya,

    Thanks for the info, it's very helpful. I am very familiar with PCB design and used to work for a software company that had a fantastic application that I am going to try to replicate, but that was 20 years ago and I am a beginner but I do have a love/hate relationship with programming, I love the satisfaction of creating something that works as I want it to but I hate the frustration I get from not being as knowledgeable as you folks are about the language and programming but I learn something everyday which is good.

    Thanks

    Dave

  22. #22
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    8,598

    Re: Jumping in

    Quote Originally Posted by Dave14867 View Post
    but I hate the frustration I get from not being as knowledgeable as you folks are about the language and programming
    That frustration only lasts as long as you still in the learning stage. It's a one-time frustration you have to endure with every new technology you learn in the domain of programming. I've moved from one programming environment to the next since my teenage years. I'm almost 40 now and it's still on going. I'm only now moving into WPF and it was painful the first week but that pain has decreased significantly. I plan to tackle Android development and web development later on which will surely bring new pain. But these pains too will subside as I get comfortable with these technologies. The most important thing is to barrel through it. You have to be gritty about learning new tech. You have to be super determined almost to the point of obsession. At this point in my life I feel confident about jumping to whatever kind of development I want despite the pain because I've been doing it all my life. You will be fine as long as you don't give up.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell | I'm not wanted

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  23. #23

    Thread Starter
    Member
    Join Date
    Feb 2018
    Posts
    34

    Re: Jumping in

    I am looking for on-line resources now to help me out, tutorials, etc. Can you recommend any great VB Programming books I should look into?

  24. #24
    Fanatic Member Delaney's Avatar
    Join Date
    Nov 2019
    Location
    Paris, France
    Posts
    845

    Re: Jumping in

    The best friend of any programmer is a search engine
    "Don't wish it was easier, wish you were better. Don't wish for less problems, wish for more skills. Don't wish for less challenges, wish for more wisdom" (J. Rohn)
    “They did not know it was impossible so they did it” (Mark Twain)

  25. #25
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    8,598

    Re: Jumping in

    Quote Originally Posted by Dave14867 View Post
    I am looking for on-line resources now to help me out, tutorials, etc. Can you recommend any great VB Programming books I should look into?
    Well what's your level of knowledge? Do you understand programming concepts like variables, functions, flow control, expression evaluation etc? Or do you understand these things already and need only to learn how use VB? The tutorials you need to consume would depend on this. Some tutorials would start with the assumption that you already know certain things, others would start with the fundamentals.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell | I'm not wanted

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  26. #26

    Thread Starter
    Member
    Join Date
    Feb 2018
    Posts
    34

    Re: Jumping in

    I am somewhat familiar with variables less so in functions and flow control, I do understand evaluating expressions. I develop databases in Access for various things and have the exposure to VBA from that but I am by no means proficient in VBA. I used to work for a software company many years ago and was taking classes in C++ for a while and I did write a couple of Applications in Visual Basic then that would parse thru a txt file and populate database tables for use in the application the software company sold, but again, that was a long time ago so I am willing to start at the beginning. I can create a new project, place controls on forms and get them to function somewhat as I expect but not always. For this project I have started with a form, added a menu with some items, read in a file to a textbox upon clicking Import from the menu, etc.

    I have found some good material on Microsoft site and have that saved so I can refer to that.

    VB has changed alot since I used it years ago and so has Visual Studio, all for the better, but I have been away from it for so long I am just starting all over.

  27. #27
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    8,598

    Re: Jumping in

    Quote Originally Posted by Dave14867 View Post
    I am somewhat familiar with variables less so in functions and flow control, I do understand evaluating expressions. I develop databases in Access for various things and have the exposure to VBA from that but I am by no means proficient in VBA. I used to work for a software company many years ago and was taking classes in C++ for a while and I did write a couple of Applications in Visual Basic then that would parse thru a txt file and populate database tables for use in the application the software company sold, but again, that was a long time ago so I am willing to start at the beginning. I can create a new project, place controls on forms and get them to function somewhat as I expect but not always. For this project I have started with a form, added a menu with some items, read in a file to a textbox upon clicking Import from the menu, etc.

    I have found some good material on Microsoft site and have that saved so I can refer to that.

    VB has changed alot since I used it years ago and so has Visual Studio, all for the better, but I have been away from it for so long I am just starting all over.
    Ah well these days YouTube is nice when you want to get off the ground with something while having very little or no knowledge about it. Seeing other people actually do it while explaining in simple terms helps immensely. From there you can start reading documentation for a more advanced understanding of whatever topics you're tackling. Microsoft documents tend to be laden with technical jargon that makes understanding something that's new to you a bit difficult which is why personally I never want to start there when I'm learning something that's completely new to me. Guys on YouTube tend to do a good job of filtering out the fundamental stuff you need to learn and explaining it to you in an easy to understand way.
    Last edited by Niya; Nov 27th, 2020 at 04:58 PM.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell | I'm not wanted

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width