PageMac
Home
   dot Projects
   dot Pics and Images
   dot WREK
D++
   dot About / FAQ
   dot Download
   dot Code Library
   dot Documentation
   dot VB6 Runtime Files
About

Variables and Arrays

Intro

Variables in D++ are quite easy. There are no variable types, as all variables are stored as strings. When you use a variable, D++ will figure out how to use it. For example, when you do a mathmatical operation, D++ automatically assume the values are numbers. If in fact they are strings, they will be assigned 0 instead. Another example is string concatination. Since all variables are strings, their actual values are concatinated. There is no need for any of that nasty casting in D++.

Declaration

The declaration of D++ is very simple, and you have a lot of freedom in defining them. Let's look at a few variable declaration examples:

newvar x, y;
newvar foo=1, doo;
newvar h, k=2, i=4;
As you can see, you can define any number of variables you want seperated by commas, and you can define any of those variables. When you define them, the expression is evaluated like any other, so you can mention other variables in the declaration.

Valid Variable Names

Starting with v4.0 of D++, variable names are strictly enforced. Variables can only consist of letters, numbers, an underscore (_) and a hyphen (-). However, unlike most languages, variables can begin or end with any of these characters. So you could have a variable named "1var" or "var1". However, like most of these flukes in D++, they aren't recommended as it's bad programming style.

Usage

You use variables in D++ just as you would use them in most other languages. You can insert them into expressions, put them in functions, or define them in an expression. Here's a few examples on defining these variables:

newvar x, y, z;
x = 1;
y = x + 4;
z = (y - 1) * 2;
screenput z;		'displays '8'
That might look kind of complicated at first, but if you solve it in your head it all makes perfect sense. You assign variables with the assignment operator, =, and you can insert other things with it. You can, of couse, include strings and functions and all the other goodies in those expressions.

Preset Variables

D++ has a few preset variables which you can use in your applications like any other variable. Of course, you can't assign values to them because they are locked.

Variable Value
dpp.ip IP address
dpp.host Host name
dpp.systemfolder System Folder
dpp.tick Tick Count (Same as GetTickCount API)
dpp.path Path of current location
dpp.crlf A carriage return
True True (case sensitive)
False False (case sensitive)

Arrays

Starting with v4.0 of D++, arrays are now supported. Arrays work very similar to the ways of other languages, mostly C++. Let's look at a few array statements:

newvar array [], foo[3], zah;
resize array, 4;

zah = 2;
array[zah] = zah;
foo[zah - 1] = zah;

As you can see, arrays are also defined with the newvar statement. The only difference is the ussage of the brackets, [], after each array. In this case, 'array' is a blank array, 'foo' is an array with 4 elements (remember, 0 is an element too!), and 'zah' is a normal variable.

Arrays are used just like other variables. All you have to do is specify the index, which is evaluated so you can insert an expression, and you have a normal variable. You can even use functions with arrays, like the split() function or any other array-based user defined function. However, when you do this, the function must be an array-based function. You cannot use a normal function on a whole array.

newvar arr[3], str;

str = "24.129";

arr = split(str, ".");		'valid, split() is an array function
arr[2] = len(str);		'valid, arr[2] functions like a normal variable
arr = len(str);			'error!  arr is an array!

Resizing Arrays

You can also resize your arrays, so that you can use dynamic arrays. Resizing works vsimilar to VB's ReDim function. (for usage of the resize statement, click here)

newvar arr[];

resize arr, 3;
arr[2] = 3;
resize preserve arr, 4;
screenput arr[2]; 		'displays '3'

When you resize an array without the preserve statement, all the information in the variable is lost. However when you do use it, the information is kept that is still within the bounds.

Back to Documentation Index