Arduino function return array
Arduino function return array. Just as your house is made of wood, drywall, and other materials Arduino programs are composed of different parts. Print or use min/max values as needed. Jun 10, 2011 · You can return a pointer to a char array. freebird4446 January 7, 2017, 11:52pm 1. Just make sure that the array actually exists after the function returns. Will the arrays you pass to the function always be 5 elements in size? At present, your function is "hard coded" for this. When the pin is configured as input this function is used to enable/disable internal pullup resistors. Unless the array is a c-string (null-terminated char array), you will probably need to also pass its size into the function. The char is a data type that stores an array of string. println(ARRAY_SIZE(arr),DEC); //return me a value of 5 CORRECT the function actually returns 1. println((char *)b); } int function() { return int(&res[0]); } Mar 9, 2017 · This: char results[2]; // also notice the semicolon! is an array of 2 characters, not an array of 2 strings. Pass Array by Array Type. Compare each value with min/max variables. Syntax: digitalWrite (pin, value); Parameters: pin Arduino pin number. Any help will be greatly appreciated. Use a loop to iterate through array. create a fixed size array, and pass it to the function as a pointer, and initialize it in the function return char Mar 8, 2022 · Is there a way to create a function in an arduino code with int or void or a boolean array that will output multiple values? Is there a usful example you have. char *results_p[2]; result_p[0] = myNewCombinedArray; . Once the function call ends that data will be reclaimed when the stack pointer is updated. Apr 19, 2007 · You're getting into a relatively tricky area, touching on pointers, memory management, etc. The max and min functions have the following syntax: max (a,b) and min (a,b), and they return the max and min values out of 4 days ago · // Declare an array of a given length without initializing the values: int myInts[6]; // Declare an array without explicitely choosing a size (the compiler // counts the elements and creates an array of the appropriate size): int myPins[] = {2, 4, 8, 3, 6, 4}; // Declare an array of a given length and initialize its values: int mySensVals[5] = {2, 4, -8, 3, 2}; // When declaring an array of May 26, 2019 · I'm new to c++, and I want to pass a float array out of a function using a pointer. 3) json. 在 Arduino 中,我们可以初始化一个给定大小的数组;初始化数组后,我们可以使用函数添加或替换数组的值。. Sep 19, 2013 · The function 'readEEPROM ()' returns a single char. Been there, done that and I'm not seeing it. Just use cstrings - char arrays terminated with 0. return payload; May 31, 2020 · You can't return locally defined arrays like that. You pass the value of that pointer to the function. PieterP June 7, 2018, 1:26pm 3 To initialize an array (put stuff in it), all you have to do is the following: myArray[] = {spot, pluto, clifford, ruff}; You can declare and initialize at the same time: dogs myArray[] = {spot, pluto, clifford, ruff}; If you want, you can specify the number of elements in your array when you declare it: 4 days ago · The return keyword is handy to test a section of code without having to "comment out" large sections of possibly buggy code. However, it is recommended to define in a variable Jan 18, 2017 · In order to make a variable from another function available inside the void loop() function you may do the following: I am using the data type byte to make tweet as a byte variable. Function makes easier do debug program. The second will tell you how much memory one element is using. ( &a[0] is the address of the first element of a. Returning the address of the test string points to an invalid location on the stack. means that the variable remains in existence, and retains its contents, across calls to the function. The best you can do is return a pointer to an array. To find the length of an array, you’ll use sizeof() in a specific way. Ray Dec 16, 2021 · In this article, you learned how to calculate the number of elements of an array in C++, the programming language used in Arduino. Hardware Required. Apr 26, 2019 · You cannot return an array from a function. Normally the compiler gives you at least a warning about that (maybe you have to turn the warnings on in the settings of the Arduino IDE). You need to declare the function parameter as a reference to link it to the variable in the calling function. These parts are functions. Declare the test string as a global. 141592654 * radius * radius; In the part of the sketch that calls the CircleArea () function, the function basically becomes the value that it returns and can be assigned to a variable. For a function to receive an array through a function call, the function’s parameter list must specify that the function expects to receive an array. Modify an Existing Array to Return Array From Function in Arduino 4 days ago · Terminate a function and return a value from a function to the calling function, if desired. For example, something like this: int TestArray=0; int BuildArray () {int MyArray [10]= {0,1,2,3,4,5,6,7,8,9}; return MyArray;} Feb 2, 2024 · Let’s explore various methods to return arrays from functions in Arduino, along with illustrative code examples for each approach. 4 days ago · The sizeof operator is useful for dealing with arrays (such as strings) where it is convenient to be able to change the size of the array without breaking other parts of the program. I want the readSensor() function to pass out a float array consisting of 3 floats. Becomes: result = 3. So, they would need to strcpy (that is, copy) the data before it is overwritten. Just use floor(num) to get a (if you need it outside the function), and return b Jun 23, 2018 · You can't make a function to return an array in C++. The easiest solution is probably to pass an array into the function and simply write the result to it (rather than trying to return the array). byte MyFunction (byte Array[]) {. It makes no sense to the compiler. begin (115200); } void loop() { // put your main code here, to run repeatedly: int ret = Test(); Serial. Either you need to pass the reference or a pointer to the array in order to be able to modify it within the method. void loop() {. But if I return an empty string instead, the strcmp function won't crash. toCharArray(charBuf, 50) In the example, there is only space for 49 characters (presuming it is terminated by null Dec 29, 2020 · The auto-increment is used for integers. But the user of your function needs to know that if they call the function a second time the data will be overwritten. Arduino Board. Jan 13, 2015 · Edit: As like Dmitri said, pass the no of elements in the array as a function argument. The function will then write into that buffer and does not need to return it. Keep in mind that you may not need to return an array in the first place. In other words you can ignore the return code. The code below is supposed to accept a value in "raw_seconds" (an aggregate time of hours, mins and seconds) to the function convertRawSec(). Mar 6, 2015 · The formula is translated into code for the Arduino as follows: A = π × r × r. f += 1. Syntax of the sizeof // Declare an array of a given length without initializing the values: int myInts[6]; // Declare an array without explicitely choosing a size (the compiler // counts the elements and creates an array of the appropriate size): int myPins[] = {2, 4, 8, 3, 6, 4}; // Declare an array of a given length and initialize its values: int mySensVals[5] = {2, 4, -8, 3, 2}; // When declaring an array of It controls digital output devices like LEDs, relays, or digital actuators. One small detail is that since a static array must have its size determined ahead of time, you cannot make the array size differ from call to call, so it would have to be a fixed size, and one would need to ensure that it was large enough for all things that were put Jan 7, 2017 · Using Arduino Programming Questions. In Arduino IDE one can declare a struct in a function like so: (the example below is to read Nano's IMU acceleration sensor data) #include <Arduino_LSM6DS3. Then declartion of function, must be placed before where it is used. We were passed a pointer to where the array is in memory. return myArray; or use an array of C-strings, i. May 29, 2017 · Of course, you can return the reference to the original array, and this can be helpful in some expressions, but think always that you are dealing with the same array anycase. Functions can not return arrays. Aug 1, 2017 · Your problem is that the test array only exists inside the abcde function. This is my code. Feb 14, 2012 · and get two back. On the other hand, they don't need to. println(returnButtonLetter Jul 5, 2015 · Your function returns the index of the lowest value in the array, and in the array you're passing to the function, the lowest value is at index 0, so the function appears to be working as designed. When we make changes to the values we are changing the original array directly. Don't go trying to return a pointer to a local array which is what it looks like you're trying to do. 2) and b with the value of b (i. A less common way is to return a pointer to the array FROM the function. I tried to make an array of functions so that I can generate a random number and that will decide the scene to be called. pointers are of size 2. println(ret); } int Test(){ int test[] = {1,2,3 May 29, 2021 · In order to get the max/ min values of an array in Arduino, we can run a simple for loop. Serial. Have text() return void and call it like this: text(2); Jun 5, 2019 · Code is as follows: (some explanations first): 1) json is an instance of myJSON library. To do what you want, you have to either use a 2 dimensional array and copy in the strings, or have an array of pointers which point to your new string. e. The compiler has to know the number of columns to calculate the offset: a[r][c] = &a[0] + c + r * #columns. The closest you can get is to return a pointer to an array, or let it operate on global variables. I would not recommend this approach though, for the reasons already stated in that answer. If you have the char array null terminated, you can assign the char array to the string: char[] chArray = "some characters"; String String(chArray); As for your loop code, it looks right, but I will try on my controller to see if I get the same problem. In setup: strcpy (cSSID, get_config_value ( SSIDFilename ); Function: char * get_config_value ( ConfigFilename ) char ConfigValue; // Open file and get config data Apr 30, 2017 · Yes, if you're very careful managing scope and memory. return; // Der Rest des Sketches hier. For me, if I was working in an embedded environment such as Arduino, this would be my preference 100%. This program prints out a text string one character at a time. 0 to a float. So in this place the function prototype before the function void loop(). In python that would be: def func(): return "ninja" print (func) Now what I have in my Arduino code is the following: void loop() { Serial. Then I want the void loop to print whatever value it returns. Das return -Keywort kann dazu dienen, Codeabschnitte zu testen ohne viel Code auskommentieren zu müssen. //Here comes the math part. int *function(int *arrays) /* this parameter declaration is equivalent to the last one */ { int temporary = arrays[0]; arrays[0] = arrays[1]; arrays[1] = temporary; return Apr 27, 2019 · int sumAB = sum(a,b); } Start by reading this kind of code like a computer would: with the main function. Define your function like this: void readEEPROM(int deviceaddress, int eeaddress, char *data) invoke it like this: readEEPROM(rom,0x0008, *lat); Do not create a local data array in the function. char myStr[] = "this is a test"; void setup() {. I get the correct number printed. Function allows us to divide a complex code or program into a simpler one. getINTValue(key, return_var) - gets a key and return its int value to return_var. Jan 25, 2022 · There are two required functions in an Arduino sketch, setup() and loop(). Here you also have to think about, what you want to return, if no measurement was actually executed. The modified values will be retained when the function ends. Nov 2, 2007 · After doing some more searching It seems that functions in C are unable to return arrays : (. While there is not a built-in function that does calculate the length of an array, we can still determine the total number of elements of the array by using sizeOf. To "call" our simple multiply function, we pass it parameters of the datatype that it is expecting: 4 days ago · The return keyword is handy to test a section of code without having to "comment out" large sections of possibly buggy code. For the first 50-60 items ("4"). value Value can be HIGH/LOW. For example, I would make the following definition: int one [5]= {2,3,4,5,6}; // 5-number array to pass along. ) ; and i would like to create a function that returns this structure : ActualSpeed Readspeed(void) { code t Jun 21, 2022 · Arduino 从函数返回数组. The String is an array of char variables. Feb 2, 2024 · Using the sizeof() Function to Get Arduino Array Length. I would like to define an array so that I could pass that array (of 5 numbers in this instance) to a function that I have defined. To pass an element of an array to a function, use the subscripted name of the array element as an argument in the function call. println() function will be handed the value 7 for printing. With my research I've concluded I should be talking to the Arduino using numbers, not words, and then call my functions inside an array via the index value passed in. The number inside the square brackets is the array index. byte uselessvariable=function(); //uses array. But have no fear – together we‘ll get you returning arrays like a … Returning Arrays from Functions for Smooth Arduino Coding Read How to use return Statement with Arduino. When we call that function, we replace a with the value of a (i. The array only exists in the function, and all you do is return a pointer to where that array was. Inside the printUserData function tweet will return the value also to the void loop function(), since its stored inside byte tweet. Many arduino functions return -1 if something 'fails'. available() + 1]; //+1 for terminator memory. You are writing a pointer into the locations just after string, which will bite you in the butt someday. And Gernot1976 shows a good way of reducing your array declarations by dynamically generating the contents. To add to And the Serial. The code for an array looks like this: int array[5] = {3, 5, 2, 8, 9}; Creating an array is called initializing an array. It needs to address a global variable or at least on that is available in the calling function. 2) json. There are two ways to pass array to a function on Arduino. Think of functions as building material for Arduino programs. . Mar 30, 2017 · Add a function to Memory that returns the required size of the buffer array that must be passed to getUserEmail(): char emailBuffer[memory. Can be replaced by: function(); //uses array. //Generating result. Using a template, you can easily pass in your arrays to a common function. Jun 7, 2018 · You never set StatusNo[0] to true so the for loop will find a false on the first pass and the function will return. 6 LEDs Function reduces the chances of errors. When you use the name of the array, it is taken to be a pointer whose value is the address of the first element of the array. ValveCurA[0]), CURRENT_AVERAGE); The problem with your "MoveAverage" method is that is does not take "Values" as a "changeable argument". char *combine(char key[], char uri[]) and. Two implementations are shown below. Example: // 1. Jun 3, 2018 · I'm trying to figure out how to return an array from a function. Good afternoon, I wonder if I can create a string function that returns an array. read for example returns -1 or the infamous when this function is called while the serial buffer is empty. The statement indicates that modifyArray expects to receive the Answer. Instead you should pass an array to the function that the function then populates. Use std::string, std::vector or similar. In general you cannot return an array that is created as a local variable because it will no longer exist when the function in which it was defined Feb 4, 2016 · long a,b; a = floor(num); b = num * pow(10,6) - a * pow(10,6); return a; return b; When I call the function. // Wird niemals ausgeführt. return a + b; c 7. P. May 22, 2014 · I want to somehow call a function with optional parameters from my Serial monitor, and then from within my Arduino program, call the passed in function. ) You cannot return arrays, and you cannot return pointers to local variables on Project: "black box" with NUMBER_INPUTS push-buttons that control NUMBER_OUTPUTS LEDs I'd like to call my 3 functions from within loop() to (#1) get the push-button positions, (#2) execute some code to determine which LEDs need to be turned on (or off), and then (#3) turn those LEDs on (or off) based on the results of that code execution. The usual way to handle this in C is to pass the array into the function and modify it. I wrote a number of functions or as they are called in my code "Scenes", and I want one to be called randomly at a time. Aug 12, 2017 · So I noticed that if the result returned is NULL, and I don't do additional checking for it first, it will crash. 3), so we could just as easily say int sumAB = sum (2, 3); Jan 11, 2015 · arduino, function to return char array. The float array should be pass to the pointer output*. Simply pasting a link to "structures" is not what I need. boop. May 25, 2019 · In this case the array must be defined in the calling function (or be global). Alternatively you can pass an array pointer in and get the function to modify what it points to. the question is: how do I retrieve b? Return a struct with both values in it, or have your function take pointers to a and b and write the values there. Jun 17, 2017 · At the most simple level your change function becomes: void Change(char tabel[]) { tabel[0] = 'n'; tabel[1] = 'b'; } and the line to call it is: Change(tabel1); Notice how there is no return type or return value. Functions in Arduino. the getSize() function is receiving a copy of a pointer to the array. It tells you the number of bytes required to store a particular piece of data. Oct 23, 2019 · 4. It is weird to use that for float numbers. void loop(){. Dec 5, 2019 · I can pass the address from the function as an integer and then re-cast it in my calling function. Jun 13, 2011 · You'd need to return a structure here, because you CANNOT return the automatic array "coord", or a pointer to it. coord[0] = x; coord[1] = y; coord[2] = z; the return value of your function is Float, you are trying to give it a float array. There are several alternatives, though. Please hold my hand on this one. Nov 11, 2017 · It is not a good idea to use the String (capital S) class on an Arduino as it can cause memory corruption in the small memory on an Arduino. Jan 28, 2024 · make this variable static. From a bird’s eye view, A function is a self-contained unit of program code designed to accomplish a particular task. Define the function as. ie. However, as your question refers to dealing with an actual array, I can show you how to do this using a reference to an array. However, it produces some odd results when I run it on Arduino Uno. You can return a pointer to a static buffer, of course. getUserEmail(emailBuffer); jcmojj: char email[50] = // I would like to have an email not with size=50, but with size of Email at EEPROM Mar 2, 2012 · IMHO this is the only way you can get some help. Return an std::pair or std::tuple. Well well now I know. println() 7. conv_time[] will store hours, mins and seconds in cell 0, 1 and 2 respectively. com/roelvandepaarWith thanks & pr Mar 2, 2017 · Create 5 different functions, each focussing on one section of the String to return. 7,662 13 53 97. byte* payload = new byte[9]; // Allocate memory on the heap. A float number is almost never a precise integer. patreon. Happy to provide code if necessary but I think I am just missing a syntax trick. The sizeof() function is a valuable tool in Arduino for determining the size of a variable or an array in bytes. Aug 16, 2010 · You are trying to return a character array, not a character. This tutorial will also discuss returning an array from a function by modifying an existing array in Arduino. return; // the rest of a dysfunctional sketch here. Then inside my loop I would pass this to the function 'myLED Nov 5, 2021 · Arduino: How to return Char Array Value in Arduino IDE Function?Helpful? Please support me on Patreon: https://www. You cannot assign one to the other. 如果我们想在函数中初始化并创建一个数组,然后在调用函数时返回它,我们必须使用动态内存分配,这是使用 malloc() 和 free Aug 16, 2021 · I am trying to make several calls to a function that returns a char array and have the returned char array assigned to a second char array. an array of char pointers: char* myArray[length]; myArray[0] = "text"; return myArray; Your function will need to have a return type of "String * " or "char ** " respectively. Comparing a float number to a integer is not possible. Pass Array by Pointer Type. You can't return stack allocated memory from a function. void setup() { // put your setup code here, to run once: Serial. Jun 17, 2008 · In C you can get the size of your array in bytes using sizeof (myarray); To get the number of elements you divide this by the size of a single element, like this: int size = sizeof (myarray) / sizeof (int); but a better way is to always use a constant to define the array size, for example: #define MY_SIZE 5. Jul 21, 2020 · I can't seem to understand what everyone's talking about when they discuss functions. int myarray [MY_SIZE]; Sep 3, 2019 · 2. BruceBerrios July 5, 2015, 5:25pm Sep 27, 2018 · Current = MoveAverage(Value, &(Valves[ThisScan]. // this code will never be executed. convertRawSec() then executes a couple of math equations in order to output the converted times to an array called conv_time[]. // brilliant code idea to test here. println(getSize(arr),DEC); //return me a value of 2 WRONG // <<<<< WRONGER Serial. Function avoids the repetition of the set of statements or codes. You can't get two values back from a function, that is not the way C is built. Aug 7, 2010 · In C and C++ you are not "passing an array" to a function by using the name of the array as an argument. I will try to use some kind of workaround. std::string readFromFlashMemory() Feb 16, 2021 · Here commonly an external buffer is provided to the function by reference as a pointer. In your function, when you use the 'sizeof' operator, you are getting the size of the pointer. Regards. One uses the max () and min () functions of Arduino, and the other uses the > and < operators. What I am trying to do is write a function that will return a value. And then if you are planning to ignore it, declare "function" as (returning) void - that is, nothing. I wrote the following code, and it works if I compile it online in C++ environment. To "call" our simple multiply function, we pass it parameters of the datatype that it is expecting: Apr 2, 2020 · Note you could also choose to return s from this function as a convenience, or to convey some extra meaning. There are two required functions in an Arduino sketch: setup () and loop (). int value; // use meaningful names in your code. Feb 8, 2018 · Serial. S. Sep 24, 2022 · Is this the proper way to go in Arduino programming? Arduino programming is C++ programming. As an example, we will create a simple function to multiply two numbers. When people say that you are "passing an array by reference Aug 27, 2015 · I want to create a structure called CarSpeed it has 4 int FR,FL,BR,BL (FrontRight,. As the array has gone when you leave the function your pointer just points to garbage. // Codeidee, die getestet werden soll, hier. strinda December 31, 2018, 11:46am 1. is the same as: byte MyFunction (byte *Array) {. However, the returning array is always 0; I am running on an Arduino Uno. As embedded C progammer, I am personally a fan of letting functions return data in the form of modifying pointers which points to passed on addresses and return states with Feb 4, 2012 · To determine the number of elements in an array, you can indeed use the sizeof () function, but, you need to use it twice. 0; // add 1. There is a way to return an array but it’s a bit more complicated than just replacing the variable name with the array name. This worked for me. the zeroeth element in the pointer (as an array) is 2bytes, arr[0 Jan 3, 2016 · Jamey D provided a nice answer. The array of string has one extra element at the end and represented by value 0 (zero). The normal way to use auto-increment is: int i; float f; i++; // auto-increment. Feb 25, 2020 · Hi. It returns a pointer to that lump of memory: char *decodedString = (char *)malloc(decodedLength); Note that malloc doesn't know what you're going to use the memory for, so you have to tell the compiler - that's what the (char *) before Jun 15, 2019 · That means, if the function is called before the next measurement time, the function will not return anything. edited Nov 17, 2019 at 20:49. Dec 31, 2018 · Using Arduino Programming Questions. Other functions must be created outside the brackets of those two functions. Edit: I just tested, returning NULL/nullptr in strcmp function on Arduino does not crash, but crashes on ESP8266. system February 14, 2012, 10:08pm 4. Dec 27, 2023 · Hey friend, have you ever spent hours debugging an Arduino project only to discover the root issue was how your arrays interact across functions? I‘ve been there too! Getting arrays to play nice can definitely be tricky coming from Arduino‘s C++ roots. //defining the array outside of the function, for example at global scope #define BUFFER_SIZE 30 char received[BUFFER_SIZE] = ""; Feb 16, 2016 · Ideally, I would like the data to come at me as a RETURN VALUE rather than having the function fill in the blanks of a passed parameter (the structure address). setValue(key, value) - gets a key and a value ( char/ int) and save it to FLASH. To convert and append an integer, use operator += (or member function concat ): String stringOne = "A long integer: "; stringOne += 123456789; To get the string as type char[], use toCharArray (): char charBuf[50]; stringOne. I can return the array itself with the below code but I can't figure out how to recieve an element from that array. Try changing the text phrase. We set a = 2 and b =3, we then go to get sumAB by calling the function sum (a,b). Jun 30, 2016 · pointsplitter June 30, 2016, 10:31pm 1. Sep 12, 2011 · 139. One of them is to allocate the memory for the array within the function, as suggested by user2912328's answer. The last element 0 (zero) known as Dec 27, 2023 · Here are some best practices to follow when using the min () and max () functions to find minimum and maximum array values in Arduino: Initialize min/max variables to first element. h> // Use Arduino library for the IMU on the Nano 33 IOT. Learn return example code, reference, definition. Jan 22, 2015 · How to Use Arrays on the Arduino. Returns: void i. Hello, I need to return a 2D array from a function. function return 1 - for successful read, and 0 when not. You can pass an array to a function and have Jan 15, 2015 · At the moment, your function is expecting one string: void myFunction(String items) Try changing it to an array: void myFunction(String items[5]) You will also need to fix some problems with your serial printing . Arduino has an added capability for using an array of characters known as String that can store and manipulate text strings. May 15, 2012 · I want to make a function that returns an array. Don't use the sizeof. In this example, the data type of the array is an integer ( int) and the name of the array is array[]. Define a global array and let the function save the data to this array rather than return the data. This could be because the function chooses among pre-allocated arrays, or it could dynamically allocate one, though you must be very careful with dynamic allocation in the very limited RAM environment of the arduino. Aug 1, 2017 · If you are writing to the global str, there is no reason for the return, and in fact, I don't know what this is going to do: str[3] = text(2); since str[3] does not even exist. To request memory from the heap, you call the function malloc and pass in the number of bytes that you want. You can rearrange them in any order you want. Return an std::array. You need to either dynamically allocate the memory on the heap like so byte* find_fix(){. Pass a pointer to the array to be modified, and let the function modify the pointed-to array. This technique of putting the pins in an array is very handy. char res[10]; void loop { b = function(); Serial. begin(9600); } However, here the order of the LEDs is determined by their order in the array, not by their physical order. Some options: Return a struct. Example. void. The 'sizeof' preprocessor directive is handy for this. it's the same as declaring a variable as the result of the function instead of a hard-coded literal. 4 days ago · // Declare an array of a given length without initializing the values: int myInts[6]; // Declare an array without explicitely choosing a size (the compiler // counts the elements and creates an array of the appropriate size): int myPins[] = {2, 4, 8, 3, 6, 4}; // Declare an array of a given length and initialize its values: int mySensVals[5] = {2, 4, -8, 3, 2}; // When declaring an array of Jun 25, 2019 · The type of a two-dimensional array is a pointer with a given number of columns ( double (*) [#columns] ). Terminate a function and return a value from a function to the calling function, if desired. const int arrLen = sizeof (array) / sizeof (array [0]); The first call will tell you how much memory the whole array is using. Additionally some pitfalls to avoid: Oct 8, 2018 · Arrays are passed to functions 'by reference' so instead of making a copy of the data it just passes a pointer to the data. I come from a python background so forgive me if I am missing some essentials here. char *newURI = combine(key, uri); Edit: as mentioned in several other comments, the function's body is also a problem because you return a string that only makes sense within the scope of the function. , Nothing. You don't have to have the pins sequential to one another, or even in the same order. mellis November 2, 2007, 4:46am 3. mz sj br ee vo yc dn up ya ou