BAS | BrowserAutomationStudio can automate everything that Chrome
kandi X-RAY | BAS Summary
kandi X-RAY | BAS Summary
This repository is not updated regularly, if you want actual source code, check out premium version
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of BAS
BAS Key Features
BAS Examples and Code Snippets
Community Discussions
Trending Discussions on BAS
QUESTION
I'm currently trying to understand this BASIC program. I especially have issues with this part:
...ANSWER
Answered 2022-Mar-06 at 17:18In the original BASIC program, there is a GOTO 1500
on line 90, which comes before lines 16-19, that you’ve reproduced here. Line 1500 is the start of the program’s main loop. This particular programmer uses the (not uncommon) pattern of placing subroutines at the beginning of their BASIC program, using a GOTO to jump to the main code.
The code you’ve reproduced from the Creative Computing program you’ve linked is a subroutine to “get a card”, as indicated by the comment above that section of code:
QUESTION
In BASIC
, tags are in increments of 10. For example, mandlebrot.bas
from github/linguist
:
ANSWER
Answered 2022-Mar-05 at 19:03The short answer is that BASIC numbering is in increments of one, but programmers can and do skip some of the increments. BASIC grew out of Fortran, which also used numeric labels, and often used increments of 10. Unlike Fortran, early BASIC required numbering all lines, so that they changed from labels to line numbers.
BASIC is numbered in increments greater than one to allow adding new lines between existing lines.
- Most early home computer BASIC implementations did not have a built-in means of renumbering lines.
- Code execution in BASIC implementations with line numbers happened in order of line number.
This meant that if you wanted to add new lines, you needed to leave numbers free between those lines. Even on computers with a RENUM implementation, renumbering could take time. So if you wanted standard increments you’d still usually only RENUM at the end of a session or when you thought you were mostly finished.
Speculation: Programmers use increments of 10 specifically for BASIC line numbers for at least two reasons. First, tradition. Fortran code from the era appears to use increments of 10 for its labels when it uses any standard increments at all. Second, appearance. On the smaller screens of the era it is easier to see where BASIC lines start if they all end in the same symbol, and zero is a very useful symbol for that purpose. Speaking from personal experience, I followed the spotty tradition of starting different routines on hundreds boundaries and thousands boundaries to take advantage of the multiple zeroes at the beginning of the line. This made it easier to recognize the starts of those routines later when reading through the code.
BASIC grew from Fortran, which also used numbers, but as labels. Fortran lines only required a label if they needed to be referred to, such as with a GO TO, to know where a loop can be exited, or as a FORMAT for a WRITE. Such lines were also often in increments greater than 1—and commonly also 10—so as to allow space to add more in between if necessary. This wasn’t technically necessary. Since they were labels and not line numbers, they didn’t need to be sequential. But most programmers made them sequential for readability.
In his commonly-used Fortran 77 tutorial, Erik Boman writes:
Typically, there will be many loops and other statements in a single program that require a statement label. The programmer is responsible for assigning a unique number to each label in each program (or subprogram). The numerical value of statement labels have no significance, so any integer numbers can be used. Typically, most programmers increment labels by 10 at a time.
BASIC required that all lines have numbers and that the line numbers be sequential; that was part of the purpose of having line numbers: a BASIC program could be entered out of order. This allowed for later edits. Thus, line 15 could be added after lines 10 and 20 had been added. This made leaving potential line numbers between existing line numbers even more useful.
If you look at magazines with BASIC program listings, such as Rainbow Magazine or Creative Computing, you’ll often see numbers sandwiched somewhat randomly between the tens. And depending on style, many people used one less than the line number at the start of a routine or subroutine to comment the routine. Routines and DATA sections might also start on even hundreds or even thousands.
Programmers who used conventions like this might not even want to renumber a program, as it would mess up their conventions. BASIC programs were often a mass of text; any convention that improved readability was savored.
Ten was a generally accepted spacing even before the home computer era. In his basic basic, second edition (1978, and expecting that the user would be using “a remote terminal”), James S. Coan writes (page 2):
It is conventional although not required to use intervals of 10 for the numbers of adjacent lines in a program. This is because any modification in the program must also have line numbers. So you can use the in-between numbers for that purpose. It should be comforting to know at this point that the line numbers do not have to be typed in order. No matter what order they are typed in, the computer will follow the numerical order in executing the program.
There are examples of similar patterns in Coan’s Basic Fortran. For example, page 46 has a simple program to “search for pythagorean triples”; while the first label is 12, the remaining labels are 20, 30, and 40, respectively.
He used similar patterns without increments of 10; for example, on page 132 of Basic Fortran, Coan uses increments of 2 for his labels, and keeps the calculation section of the program in the hundreds with the display section of the program in the two hundreds. The END
statement uses label 9900.
Similarly, in their 1982 Elementary BASIC, Henry Ledgard and Andrew Singer write (page 27):
Depending on the version of Basic you are using, a line number can consist of 1 to 4 or 5 digits. Here, all line numbers will consist of 4 digits, a common practice accepted by almost every version of Basic. The line numbers must be in sequential order. Increasing line numbers are often given in increments of 10, a convention we will also follow. This convention allows you to make small changes to a program without changing all the line numbers.
And Jerald R. Brown’s 1982 Instant BASIC: 2nd Astounding Edition (p. 7):
You don’t have to enter or type in a program in line number order. That is, you don’t have to enter line 10 first, then line 20, and then line 30. If we type in a program out of line number order, the computer doesn’t care. It follows the line numbers not the order they were entered or typed in. This makes it easy to insert more statements in a program already stored in the computer’s memory. You may have noticed how we cleverly number the statements in our programs by 10's. This makes it easy to add more statements between the existing line numbers -- up to nine more statements between lines 10 and 20, for example.
Much of the choice of how to number lines in a BASIC program was based on tradition and a vague sense of what worked. This was especially true in the home computer era where most users didn’t take classes on how to use BASIC but rather learned by reading other people’s programs, typing them in from the many books and magazines that provided program listings. The tradition of incrementing by 10 and inserting new features between those increments was an obvious one.
You can see it scanning through old books of code, such as 101 BASIC Computer Games. The very first program, “Amazin” increments its line numbers by 10. But at some point, a user/coder decided they needed an extra space after the code prints out how many dollars the player has; so that extra naked PRINT
is on line 195. And the display of the instructions for the game are all kept between lines 100 and 109, another common pattern.
The program listing on page 30 for Basket displays the common habit of starting separate routines at even hundreds and thousands. Line numbers within those routines continue to increment by 10. The pattern is fairly obvious even though new features (and possibly other patterns) have added several lines outside the pattern.
As BASIC implementations began to get RENUM commands, more BASIC code listings appeared with increments of one. This is partly because using an increment of one used less memory. While the line number itself used a fixed amount of RAM (with the result that the maximum line number was often somewhere around FFFF, or 65525), references to line numbers did not tend to use a fixed length. Thus, smaller line numbers used less RAM overall.
Depending on how large the program was, and how much branching it used, this could be significant compared to the amount of RAM the machine itself had.
For example, I recently typed in the SKETCH.BAS program from the October 1984 Rainbow Magazine, page 97. This is a magazine, and a program, for the TRS-80 Color Computer. This program uses increments of 1 for its line numbering. On CLOADing the program in, free memory stands at 17049. After using RENUM 10,1,10
to renumber it in increments of 10, free memory stands at 16,953.
A savings of 96 bytes may not sound like much, but this is a very small program; and it’s still half a percent of available RAM. The difference could be the difference between a program fitting into available RAM or not fitting. This computer only has 22823 bytes of RAM free even with no program in memory at all.
QUESTION
I've written this code to find squared Range spoted with a back ground color.
My problem is that it thakes 4 or 5 seconds to execute on a large range of 36000 row x 8 columns.
Do you have suggestions to improve and speed the code quoted below ?
...ANSWER
Answered 2022-Mar-03 at 11:16Read: Optimize VBA Code for performance improvement. Turning off Application.ScreenUpdating
and setting Application.Calculation
will greatly improve he speed.
QUESTION
I have a custom Class in Excel, and some of its methods are recognised while others aren't.
VBA returns the run-time error '438' object doesn't support this property or method once my module gets to .addButton "button1", "Click Me", "msgbox (""Button clicked!"")" but it has no issue with the previous line, which is a method of the same object.
What could be causing VBA to not recognise the addButton() method, when it recognises createForm() and successfully creates a UserForm?
Module (Example.bas)
...ANSWER
Answered 2022-Feb-21 at 10:11The runtime error is not issued by the fact that the method addButton
cannot be called. The method itself is raising a runtime error, but depending on your debugger settings, it will or will not stop at the line that causes the error as it is a method within a class (see comment of Storax).
The object form
in your class is not of type Userform
, it's of type VBComponent
. This class has no property like Height
that you can access to read and set the height of the form. It has, however, a Property named Properties
which is a list of Properties that you can read and modify:
QUESTION
This is an example of a data list from Laravel DB:
...ANSWER
Answered 2022-Feb-15 at 18:01It's a collection. You can use these methods :
QUESTION
I'm trying to create a header for a page that puts the title of the page in the middle and centered absolutely. I tried to do this with flex box and justify-content:space-between
However as shown below I get the title skewed depending on the buttons width on the right (I've exaggerated that to show the effect)
While I was able to absolutely center the title (using absolute positioning on the h1) as in the example of "Want", a strange side-effect shows up on the buttons- they aren't clickable anymore! I'm flummoxed. What's going on here? How do I center the title and still keep the buttons working (with flex)?
...ANSWER
Answered 2022-Feb-09 at 18:48As mentioned user:Phix, problem is your headline (with position: absolute; property) overlay button. In this case you should add z-index to sibling node.
QUESTION
BOUNTY EDIT
Not looking for an answer - already posted and accepted one. Just trying to raise awareness with this bounty.
Original post
I have come across a nasty VBA bug that makes Property Get
procedure calls really slow. This is most likely due to a recent Office update (I have Office365). It only affects Excel on 32 bits.
The bug
Consider a class called Class1
with only the code:
ANSWER
Answered 2022-Jan-05 at 23:10I tested your example in 2013-32 with an empty class v with the 100 properties, and only got a small difference in timings. I can only assume something related with your particular setup.
However I'd say your 0.45 sec is slow even in an old system, and the reason for that is your particular use of a large Collection. Two ways to improve -
Counter intuitively with large collections it's much faster to use Keys rather than Indexes to retrieve items, populating is only slightly slower with keys. Referencing col.Item(1) is fast but bigger indexes are progressively slower, seems internally the collection is looped to find the given index each time ...
QUESTION
In the modularized shiny app below Im trying to display both the plot and its box when I hit the actionButton()
. Although it was working for the plot when I tried to do the same logic for the box both are not displayed at all.
ANSWER
Answered 2022-Jan-04 at 14:53id = ns("hiddenbox")
QUESTION
I have the simple shiny app below in which I create a leaflet map. I would like to create a shiny module though that would specifically create the leaflet map.
...ANSWER
Answered 2022-Jan-03 at 10:11You have made some mistakes.
Below is code without these mistakes:
QUESTION
I have been learning buffer overflows and i am trying to execute the following command through shellcode /bin/nc -e /bin/sh -nvlp 4455
. Here is my assembly code:
ANSWER
Answered 2021-Dec-29 at 14:12As you can see in strace
, the execve command executes as:
execve("/bin//nc", ["/bin//nc", "/bin//nc-e //bin/bash -nvlp 4455"], NULL) = 0
It seems to be taking the whole /bin//nc-e //bin/bash -nvlp 4455
as a single argument and thus thinks it's a hostname. In order to get around that, the three argv[]
needed for execve()
is pushed seperately.
argv[]=["/bin/nc", "-e/bin/bash", "-nvlp4455"]
These arguments are each pushed into edx, ecx, and ebx. since ebx needs to be /bin/nc, which was already done in the original code. we just needed to push 2nd and 3rd argv[] into ecx and edx and push it into stack. After that we just copy the whole stack into ecx, and then xor edx,edx
to set edx as NULL.
Here is the correct solution:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install BAS
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page