Classe cTXT v3.35

Ma classe cTXT est un genre de couteau suisse de traitement de données texte
ou encore un substitut aux antiques zones mémoire de Windev 5

Elle fait partie intégrante de WDScript pour la gestion des fichiers de configuration (cache des fichiers INI en mémoire)
Vous pourrez donc obtenir la dernière version à jour dans les sources de WDScript (Windev 15 uniquement)

Elle permet aussi de transmettre un tableau de données à un état ou à une fenetre...

Elle utilise un tableau à deux dimensions pour stocker les données, exclusivement sous
forme de chaines et ressemble aux récentes fonctions TableauXXX qui ont été introduites avec la version 10 de windev.

J'utilise cette classe depuis de nombreuses années dans mes projets et a donc été testée de nombreuses fois...

Exemple qui affiche la seconde colonne d'un fichier CSV

oTxt est un cTXT
oTxt:sSeparatorX = ";"
oTxt:bCSVQuotes = Vrai
oTxt:Parse(fChargeTexte(sFichierCSV))
 
oTxt:Premier()
TANTQUE PAS oTxt:Endehors
  Trace(oTxt:ColOf(2))
  oTxt:Suivant()
FIN

Les interfaces suivantes sont implémentées :
Fichier Texte : Entree et Sortie + Sortie vers Fichier délimité (:TxtVersFormatSpec)
Fichier CSV : Entree
Fichier Excel : Sortie
Fichier INI : Entree et Sortie
Zone mémoire : Entree et Sortie
Registre : Entree
Listing de Repertoire : Entree
Table Mémoire : Entree et Sortie
Arbre : Sortie

Autres possibilités :
Substitut de tableau associatif : SetKeyValue/GetKeyValue
Ajout/Insersion de colonnes
Recherche mono ou multi colonne
Tri (par fonction TableauTrie ou manuel, avec parametres spéciaux)
Suppression de doublons
Gestion d'entete de colonne
Gestion de Memos associés à une ligne ou a une cellule

// v3.35 (01 oct 2010)
//  * Tableaux locaux
// v3.34 (03 fev 2010)
//  * Correctif MemoCompacte et SortWD (avec Memos)
// v3.32 (23 jan 2010)
//  + Ajout CRC sur données d'entrée, si :bCRCInput est activé
//  + Ajout cTxtVersTxt pour importer les données d'un autre objet cTxt ou pour le concatener
//  * Fix AddLine() si :nbCols < MesParametres..Occurrence
// v3.31 (22 jan 2010)
//  o Optimisation methode :Insert() avec TableauInsereLigne
//  + Ajout TxtVersHtml pour créer une table HTML
//  + Ajout AssocVersTxt pour copier un tableau associatif
//  + Ajout AddLine(col1,col2,....) compatible avec TableauAjouteLigne
//  + Ajout Parametre TxtVersTable() pour colonne de decalage
//  * IniVersTxt() pouvait encore poser probleme
// v3.30 (11 jan 2010)
//  - Renommage methode :Cell() en :CellGet() pour éviter les warnings redondants de Windev 15
//  - SortWD() probleme premier parametre pour tri multi colonne
//  * Premier() si vide, pour éviter les problemes dans certains cas
//  * Retrait warnings de parametre non utilisés sur fonctions de type zone mémoire
// v3.25 (05 jan 2010)
//  * IniVersTxt_Linux, retrait espaces des valeurs si ini du type "key = value"
// v3.24 (31 dec 2009)
//  * Retrait lignes vides de IniVersTxt
// v3.23 (20 juin 2008)
//  * Bug IniLit si derniere ligne
//  + Ajout IniVersTxt_Linux car IniLit ne fonctionne pas correctement sous linux
// v3.22 (19 mai 2008)
//  o IniVersTxt optimisé grace à l'API GetPrivateProfileSection (au moins 2x plus rapide)
//  o IniLit et IniEcrit optimisés grace à TableauCherche (attention les [SECTIONS] sont maintenant forcées en majuscules)
//  o GetTxt() optimisé avec TableauVersChaîne (Windev 12 uniquement)
// v3.21 (10 mai 2008)
//  * Bug IniEcrit
// v3.20 (17 avr 2008)
//  + TxtVersExcel
// v3.11 (8 avr 2008)
//  * IniVersTxt :nModeMultitache relayé (pour wdscript linux)
// v3.10 (3 fév 2008)
//  * TxtVersTable, pas d'affectation si la table n'a pas assez de colonnes
//  * Bugfix GetEntete (v3.00)
//  + Ajout de la propriété bCSVQuotes pour prendre en compte les guillements pour chaque cellule
//  + DropDoubles gere maintenant plus de 2 doublons, à tester
//  + FiltreByLine, FiltreByCol renvoie le nouveau nombre de ligne
//  o Optimisation de TraceTxt sur une plage (colonnage correct), ajout des parametres facultatifs ColMin, ColMax
//  o Typage des parametres de methodes, Ajout des commentaires de méthodes
// v3.00 (6 déc 2007)
//  * FindInCol() renvoie faux si la colonne ou la ligne mini n'existe pas
//  o Optimisation de Find avec TableauCherche lorsque cela est possible
//  o Fonction Line(L=:Encours,_ColDeb=1,_ColFin=:nbCols) maintenant sans parametre possible
//  * Sort() renvoie faux si la colonne demandée n'existe pas
//  + Support de la fonction Jauge() avec le membre :bJauge
//  o Optimisation du tri avec TableauTrie (50x plus rapide) (v10 mini)
//  o Optimisation des suppressions avec TableauSupprimeLigne (2x plus rapide) (v10 mini)
//  o AddCol(sFill=EOT) accepte un paramètre pour remplir la colonne
//  o Fonction Cell(L=:Encours,C=1) maintenant sans parametre possible
//  o Fonction Del(L=:Encours) maintenant sans parametre possible
//  o AddCol renvoie le nombre de colonnes
//  * MemoDel Renumerotation automatique
//  * Bug Fonction Precedent() (:endehors au lieu de :encours)
//  * Resize(), probleme redimensionnement colonnes / :nbcol
//  x StartDelete renommé en DeleteOptBegin(), EndDelete renommé en DeleteOptEnd() pour améliorer mnémonique et autocomplétion dans le code "Endehors"

AttachmentSizeDownloadsLast Download
v3.21 Classe et Projet exemple Windev 10, et classe héritée pour expressions régulieres...509.99 KB34981 week 4 days ago
v3.22 Classe et Projet exemple Windev 10, et classe héritée pour expressions régulieres...507.86 KB35656 days 3 hours ago
PDF v3.35 wd15 (Code Source de la version incluse dans WDScript)242.99 KB468218 min 6 sec ago
v3.35 Classe Windev 15 (sans projet exemple)78.39 KB340910 min 12 sec ago