ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / WLanguage / WLanguage functions / Standard functions / Queue, stack, list and array functions / Array functions
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
FileToArray (Function)
In french: FichierVersTableau
Fills an array of classes or structures with the content of an HFSQL data file or query. The values of members of instances of structures or classes are filled with the values of items of records found in the data file or in the query.
Example
// Déclaration d'une classe MesContacts
MesContacts is Class
NomDeFamille is string
Prénom is string
AdresseEmail is string
END
 
// Chargement des enregistrements d'un fichier de données Contacts.fic
// dans un tableau d'objet de la classe MesContacts
tabContact is array of MesContacts
 
HOpen(Contacts)
FileToArray(tabContact, Contacts)
Syntax
FileToArray(<Array> [, <Data file> [, <Search key>]])
<Array>: Array of structures or objects
Name of one-dimensional array into which the elements found in the data file or in the query will be added. This array must be allocated in a structure or class type.
<Data file>: Character string
Name of the HFSQL data file or query used.
<Search key>: Character string
Name of search item used. This parameter is used when a filter is defined by HFilter. This parameter corresponds to the optimal search key to use, returned by HFilter.
PHP This parameter is ignored.
Remarks
  • The array is entirely cleared by FileToArray.
  • The automatic arrays are automatically resized according to the requirements.
  • The file browse is performed by respecting the current filter on the data file.
  • The position and the values of the current record are not modified by FileToArray.
  • For each record found in the data file or in the query:
    • for each member of structure or class with the same name, or same "mapping" attribute, as a file item, the item value is copied into the member value.
    • if a structure or class member has no item with the same name in the data file, its value is not modified.
    • if an item of data file has no member with the same name in the class, no copy of value will be performed.
  • Caution: FileToArray is a blocking function for all the threads.
Component: wd290vm.dll
Minimum version required
  • Version 15
This page is also available for…
Comments
LIMITATION: Missing auto assignment on subclass members
This function works great but is missing one neat feature, the assignment towards members of subclasses (Typically useful when implementing a Model-View-Controller architecture).

Here's a simplified example:
1) Classes used
Class CustomerClass
CustomerID is int
Name is string
CityID is int
City is a CityClass
END

Class CityClass
CityID is int
CityName is string
PostalCode is string
CountryID is int
Country is CountryClass
END

Class CountryClass
CountryID is int
CountryISOCode is string
CountryName is string
END

2) Query used to assign to class members
Assume we have a query that joins customers with the city table and the country table resulting in a data source with the format:
CustomerID | Name | CityID | CityName | PostalCode | CountryID | CountryISOCode | CountryName

3) Array used
MyArray is array of 0 CustomerClass

4) Now we assign this query result to the array of CustomerClass objects using the FichierVersTableau(MyArray, MyQuery) function. This would unfortunately only assign the members at the level of the Customer Class instance and not the members of the subclass City instance and the subsubclass Country instance limitating this feature in real life OO scenario's.
PeHoBe
18 Aug. 2010

Last update: 07/06/2023

Send a report | Local help