Pastebin
API
tools
faq
paste
Login
Sign up
Please fix the following errors:
New Paste
Syntax Highlighting
; ; *** BEFORE USING - MAKE A FILE CALLED 'TEXT.TXT' ON THE C DRIVE AND WRITE A FEW RANDOM LINES OF TEXT WITH NOTEPAD *** ; TYPES OF VARIALBES ; Global means it can be used anywhere - omiting this means it's local ; the main variable types you will need are .a .s .i ('i' is automatic if not specified) ; **YOU ALWAYS DEFINE YOUR GLOBAL VARIABLES AT THE TOP TO AVOID CONFUSION** ; EXAMPLES ; NOTE: We won't use all of these variables in our code below - some are just examples. #THE_FILENAME = "C:\text.txt" ; this is a constant text string - constants are described later Global TheNumber = 1000 ; this is automatically an integer (for big numbers) by default because there's no '.i' period after it Global PushedButton.a = #False ; '.a' after means this uses 1 byte (either for true/false or for numbers 0 - 255). it's the smallest unit available Global TheText.s = "This is some text" ; you use '.s' to denote a text string variable ; AN ARRAY Global Dim TheTextLines.s(10, 10) ; this defines a 2D matrix (a.k.a. array) 10 by 10 of text strings ; how to use it TheTextLines(1, 1) = "thing" ; now position 1 by 1 equals 'thing'. you can also use 0 by 0 if you want. most things start at zero. Global Dim RealLines.s(0) ; this one is also an array, but with one dimension. it's zero because the size will be defined later - we don't know how much space we need yet ; LOCALS ; if you write a var without using global in front, it'll automatically be local TheTest.a = #True HappyFrank.s = "happy to be" ; EXAMPLES OF PROCEDURES ; these get called in your code below to use them - like 'LoadSomeText()'. it's used as if it's a built in command in the language. Procedure LoadSomeText() This_Is_A_Variable.a = 50 ; a local variable with a size of 1 byte - can store 0 to 255. it can't be used outside this procedure. ; you may use underscore or capitalization in your variable names, just NO SPACES. TheText = "this is some new text" ; this one we can access/change in here cause it's Global. we couldn't use HappyFrank in here though (we 'could', but it would be a new var that's cleared.) ; put whatever code you want in here EndProcedure ; these procs don't return anything. if it were to return something, you'd write 'Procedure.i' or 'Procedure.a' for example. SEE BELOW at the next procedure. Procedure AnotherProc() ; more stuff would go in here EndProcedure ; this proc will count the number of lines in a text file ; we need to use this below, you'll see ; FileNumber is a default '.i' that we pass into the procedure like a command parameter. Procedure.i CountFileLines(FileNumber) ; on a procedure '.i' should be defined if the proc is to return a value. it means this proc will return an integer number, but it could be any of the types. Lines = 0 ; automagically an integer cause no '.' after it Repeat Lines + 1 ; in PB (unlike other langs), we don't say 'Lines = Lines + 1' or 'Lines++' - it's more clear IMO. ReadString(FileNumber) Until Eof(FileNumber) = #True ; Eof means 'End Of File', so this loop repeats until the end of file has been reached. Lines - 1 ; we get one extra blank line at the bottom of the file, so -1 to ignore it FileSeek(FileNumber, 0) ; this sets our reading pointer back to the top of the file, so we can later start reading from the begining again. ProcedureReturn Lines EndProcedure ; MACROS ; macros are simply procs that are basically pasted in place of your code (where ever you write its name) ; whereas procs actually get referenced and the code jumps into it ; so if you use a long macro too often, it will bloat your code because it's pasting copies of it everywhere - in that case, use a procedure ; they are generally used to just make your code look better and more understandable below Macro BeginingOfFile() FileSeek(0, 0) EndMacro ; ANYTHING OUTSIDE OF/BELOW YOUR PROCS AND VARIABLE DECLARATIONS, IS THE MAIN ENTRY POINT OF YOUR PROGRAM ; so this is where the program starts executing. ; For example: This_Is_A_Variable - will not work here because it is local to the procedure called LoadSomeText() If ReadFile(0, #THE_FILENAME) ; opens this text file as file number zero. if you were to open more files, you'd put one, etc. if you are done and CloseFile(0), then you can re-use zero again. ; we count the number of lines in the file so that we know how big to make the array (1D matrix) Lines = CountFileLines(0) ; Lines = the integer returned by using our procedure above Dim RealLines.s(Lines) ; this is the array we defined above as 'Global' with a size of zero. we are now re-dimensioning it to the size in the variable 'Lines' For CurrentLine = 0 To Lines RealLines(CurrentLine) = ReadString(0) ; we read each line from the file and assign it to its proper position in the array Next BeginingOfFile() ; go back to the begining so we can do it again with a different example. the macro code is pasted here behind the scenes. #GOODLY_FILE = 0 ; this is an example of a constant. it's denoted with a hashtag. it's a pre-defined variable that can never change at run-time. ; you could use this constant instead of writing '0' for your file number everywhere. it's just to make your code more readable. ; Example: OpenFile(#GOODLY_FILE, "B:\text.txt") .... Lines = CountFileLines(#GOODLY_FILE) #ANOTHER_FILE = 1 ; if you know your numbers will always be in order... (in some instances you want constants with numbers out of order) ; you can use an Enumeration and that will automatically number them in order Enumeration ; enumerations are convenient because sometimes, you might want to remove an item from the list and not have to change all the following numbers to be in order. #FIRST_FILE ; they don't need to be capitalized, but this is the main convention #SECOND_FILE #THIRD_FILE EndEnumeration ; enumerations are very important when dealing with windows and their containing objects (gadgets in PB)... ; so you don't have to remember the object numbers AND can also insert more objects without changing all the subsequent ones. ; here is another way to read the lines that's much simpler and doesn't use a procedure like CountFileLines, but it's far slower Lines = 0 Repeat RealLines(Lines) = ReadString(#GOODLY_FILE) Lines + 1 ReDim RealLines.s(Lines) ; we are using ReDim here, instead of Dim. ReDim resizes the array and preserves its contents. ; so instead of counting the file lines first, we just resize the array once on each loop - slower and junky. to resize and preserve, the system... ; has to reallocate a new slightly larger chunk of ram and then copy the contents from the old array into the new larger memory space. ; use it sparingly and only when there is absolutely no way to determine the size of something beforehand like we did above. Until Eof(#GOODLY_FILE) = #True Lines - 1 CloseFile(#GOODLY_FILE) ; display the lines For DisplayLine = 0 To Lines MessageRequester(TheText, RealLines(DisplayLine)) ; this shows each line of the array we read in a MessageBox (the term used in mainstream languages). Next Else MessageRequester(HappyFrank, "The file '" + #THE_FILENAME + "' could not be opened!", #PB_MessageRequester_Error) ; this is the same as MessageBox in VB. EndIf
Optional Paste Settings
Category:
None
Cryptocurrency
Cybersecurity
Fixit
Food
Gaming
Haiku
Help
History
Housing
Jokes
Legal
Money
Movies
Music
Pets
Photo
Science
Software
Source Code
Spirit
Sports
Travel
TV
Writing
Tags:
Syntax Highlighting:
None
Bash
C
C#
C++
CSS
HTML
JSON
Java
JavaScript
Lua
Markdown (PRO members only)
Objective C
PHP
Perl
Python
Ruby
Swift
4CS
6502 ACME Cross Assembler
6502 Kick Assembler
6502 TASM/64TASS
ABAP
AIMMS
ALGOL 68
APT Sources
ARM
ASM (NASM)
ASP
ActionScript
ActionScript 3
Ada
Apache Log
AppleScript
Arduino
Asymptote
AutoIt
Autohotkey
Avisynth
Awk
BASCOM AVR
BNF
BOO
Bash
Basic4GL
Batch
BibTeX
Blitz Basic
Blitz3D
BlitzMax
BrainFuck
C
C (WinAPI)
C Intermediate Language
C for Macs
C#
C++
C++ (WinAPI)
C++ (with Qt extensions)
C: Loadrunner
CAD DCL
CAD Lisp
CFDG
CMake
COBOL
CSS
Ceylon
ChaiScript
Chapel
Clojure
Clone C
Clone C++
CoffeeScript
ColdFusion
Cuesheet
D
DCL
DCPU-16
DCS
DIV
DOT
Dart
Delphi
Delphi Prism (Oxygene)
Diff
E
ECMAScript
EPC
Easytrieve
Eiffel
Email
Erlang
Euphoria
F#
FO Language
Falcon
Filemaker
Formula One
Fortran
FreeBasic
FreeSWITCH
GAMBAS
GDB
GDScript
Game Maker
Genero
Genie
GetText
Go
Godot GLSL
Groovy
GwBasic
HQ9 Plus
HTML
HTML 5
Haskell
Haxe
HicEst
IDL
INI file
INTERCAL
IO
ISPF Panel Definition
Icon
Inno Script
J
JCL
JSON
Java
Java 5
JavaScript
Julia
KSP (Kontakt Script)
KiXtart
Kotlin
LDIF
LLVM
LOL Code
LScript
Latex
Liberty BASIC
Linden Scripting
Lisp
Loco Basic
Logtalk
Lotus Formulas
Lotus Script
Lua
M68000 Assembler
MIX Assembler
MK-61/52
MPASM
MXML
MagikSF
Make
MapBasic
Markdown (PRO members only)
MatLab
Mercury
MetaPost
Modula 2
Modula 3
Motorola 68000 HiSoft Dev
MySQL
Nagios
NetRexx
Nginx
Nim
NullSoft Installer
OCaml
OCaml Brief
Oberon 2
Objeck Programming Langua
Objective C
Octave
Open Object Rexx
OpenBSD PACKET FILTER
OpenGL Shading
Openoffice BASIC
Oracle 11
Oracle 8
Oz
PARI/GP
PCRE
PHP
PHP Brief
PL/I
PL/SQL
POV-Ray
ParaSail
Pascal
Pawn
Per
Perl
Perl 6
Phix
Pic 16
Pike
Pixel Bender
PostScript
PostgreSQL
PowerBuilder
PowerShell
ProFTPd
Progress
Prolog
Properties
ProvideX
Puppet
PureBasic
PyCon
Python
Python for S60
QBasic
QML
R
RBScript
REBOL
REG
RPM Spec
Racket
Rails
Rexx
Robots
Roff Manpage
Ruby
Ruby Gnuplot
Rust
SAS
SCL
SPARK
SPARQL
SQF
SQL
SSH Config
Scala
Scheme
Scilab
SdlBasic
Smalltalk
Smarty
StandardML
StoneScript
SuperCollider
Swift
SystemVerilog
T-SQL
TCL
TeXgraph
Tera Term
TypeScript
TypoScript
UPC
Unicon
UnrealScript
Urbi
VB.NET
VBScript
VHDL
VIM
Vala
Vedit
VeriLog
Visual Pro Log
VisualBasic
VisualFoxPro
WHOIS
WhiteSpace
Winbatch
XBasic
XML
XPP
Xojo
Xorg Config
YAML
YARA
Z80 Assembler
ZXBasic
autoconf
jQuery
mIRC
newLISP
q/kdb+
thinBasic
Paste Expiration:
Never
Burn after read
10 Minutes
1 Hour
1 Day
1 Week
2 Weeks
1 Month
6 Months
1 Year
Paste Exposure:
Public
Unlisted
Private
Folder:
(members only)
Password
NEW
Enabled
Disabled
Burn after read
NEW
Paste Name / Title:
Create New Paste
Hello
Guest
Sign Up
or
Login
Sign in with Facebook
Sign in with Twitter
Sign in with Google
You are currently not logged in, this means you can not edit or delete anything you paste.
Sign Up
or
Login
Public Pastes
Untitled
Python | 11 min ago | 1.65 KB
vertical listview flutter
Dart | 22 min ago | 2.14 KB
horizontal listview flutter
Dart | 26 min ago | 5.37 KB
Untitled
JavaScript | 1 hour ago | 3.00 KB
music
JavaScript | 2 hours ago | 21.51 KB
admin music
JavaScript | 2 hours ago | 2.41 KB
Untitled
JSON | 2 hours ago | 12.82 KB
APK STRATEGI 5
C++ | 2 hours ago | 0.81 KB
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the
Cookies Policy
.
OK, I Understand
Not a member of Pastebin yet?
Sign Up
, it unlocks many cool features!