SlideShare a Scribd company logo
1 of 27
9. Stringuri și Fișiere I/O (Intrare/Ieșire)


TOPICS
A. String controls and indicators
B. String functions
C. File I/O operations
D. High-level File I/O VIs
E. Low-level File I/O VIs
F. Format text files for use in spreadsheets
A. Controale și Indicatoare String
                          (Șir de caractere)
• Un rol aparte intre controalele/indicatoarele din mediul LabView il joacă cele pentru lucrul cu sir de caractere
  si tabele. Componentele din această categorie permit citirea/afisarea acestui tip de date.
• Un string este o secvență de caractere (ASCII) afișabile sau neafi șabile (spa țiu, tab, e.t.c.)
• Utilizări – afișarea mesajelor, controlul instrumentelor, fișiere I/O
• Controalele/indicatoarele string se găsesc în subpaleta Controls» »Text Control or Text Indicator
Moduri de afișare a stringurilor
• Normal display     •  code display




• Password display   • Hex display
B. Funcţii String
• Funcţiile pentru valorile alfanumerice sunt grupate în subpaleta
  String a paletei de funcții. Mai frecvent utilizate sunt cele pentru
  transformarea caracterelor în majuscule (To Upper Case), pentru
  transformarea caracterelor în minuscule (To Lower Case), de
  calculare a lungimii unui şir de caractere (String Length), de
  compunere a unui şir din două şiruri distincte (Concatenate String),
  de identificare şi înlocuire a unui şir în cadrul altuia (Search and
  Replace String) etc.
• De asemenea, subpaleta String
  conţine un element String
  Constant utilizat pentru
  introducerea în diagramă a
  valorilor alfanumerice
  constante.
• Funcţia String Length determină numărul
  de caractere dintr-o valoare alfanumerică.
  Sunt luate în considerare şi caracterele
  neafişabile (spaţiu, Tab, sfârşit de linie etc).
  Numărul de caractere de la ieşirea funcţiei
  este exprimat ca un număr întreg pe patru
  octeţi.
Funcţia Concatenate Strings posedă un număr de intrări ce poate fi modificat de către
utilizator prin dimensionarea simbolului funcţiei (în mod asemănător cu Compound
Arithmetic). La ieşirea sa, funcţia generează o valoare alfanumerică obţinută prin
concatenarea textelor de la intrările sale, în ordinea de sus în jos.
• Funcţia String Subset extrage, din textul conectat la intrarea String, o porţiune
de Length caractere începând de la caracterul aflat la poziţia Offset inclusiv
(pentru primul caracter se consideră offset = 0). Dacă la intrarea Offset a funcţiei
nu este introdusă nici o valoare, funcţia consideră că extragerea se va efectua
începând cu primul caracter (valoarea implicită 0 a intrării offset). Dacă la intrarea
Length nu este introdusă nici o valoare, funcţia consideră că extragerea se va
efectua până la ultimul caracter inclusiv.
• Funcţia Replace Substring şterge o porţiune din textul conectat la
  intrarea String şi introduce în locul respectiv textul conectat la
  intrarea Substring. Porţiunea înlocuită începe de la caracterul aflat pe
  poziţia Offset inclusiv şi conţine Length caractere. Intrarea Offset are
  valoarea implicită 0, iar intrarea Length are o valoare implicită egală
  cu numărul de caractere legat la intrarea Substring. Dacă la intrarea
  Substring nu se leagă nici o valoare, funcţia efectuează o ştergere a
  unei porţiuni, iar dacă la intrarea Length se leagă valoarea 0 funcţia
  efectuează, de fapt, o inserare a unei porţiuni.
• Funcţia Search and Replace String caută textul Search String în textul
  conectat la intrarea String, iar când îl găseşte, îl înlocuieşte cu textul
  conectat la intrarea Replace String. Căutarea are loc începând de la poziţia
  Offset a textului String. Dacă la intrarea Offset nu se conectează nici o
  valoare, căutarea are loc începând cu prima poziţie. Dacă la intrarea
  Replace String nu se conectează nici o valoare, atunci funcţia efectuează o
  ştergere (înlocuire cu text vid). Dacă la intrarea Replace All nu se
  conectează nici o valoare, atunci funcţia se opreşte după prima apariţie a
  textului Search String. Dacă la această intrare se conectează o valoare
  logică de tip True, funcţia efectuează înlocuiri pentru toate apariţiile textului
  Search String. Funcţia generează textul rezultat în urma înlocuirii la ieşirea
  Result String, iar la ieşirea Offset Past Replacement generează o valoare
  indicând poziţia caracterului aflat imediat după ultimul caracter înlocuit.
• Funcţia Search/Split String caută textul conectat la intrarea Search
  String/char în textul conectat la intrarea String. Căutarea se
  efectuează începând cu poziţia Offset. Dacă textul căutat este găsit,
  funcţia împarte textul iniţial în două părţi, astfel: partea dinaintea
  textului căutat (Substring Before Match) şi textul căutat urmat de
  restul textului în care s-a făcut căutarea (Match + Rest Of String).
  Funcţia generează la ieşirea Offset Of Match poziţia în care a fost
  găsit textul căutat. Dacă textul căutat nu a fost găsit, ieşirea
  Substring Before Match conţine tot textul legat la intrarea String, iar
  ieşirea Offset Of Match are valoarea -1.
• Funcția Format Into String convertește numere într-un șir de
  caractere (1.28→1.2800). Această funcție nu este folosită doar
  pentru conversia datelor numerice în date string. Mai pot fi convertite
  în stringuri următoarele elemente: căi de fișiere, enumerări, date
  Booleene. De exemplu, utilizând formatul %s un Boolean va fi
  convertit în "FALSE" sau "TRUE." Utilizând formatul %d, Booleanul
  va fi convertit în "0" sau "1." Similar, utilizând formatul %s, un Enum
  va fi convertit în textul său. Utilizând formatul %d, Enum va fi
  convertit în valoarea sa întreagă.
Converting Numerics to Strings
The Build String Express VI
concatenates an input string. If
the inputs are not a string, the
inputs are converted to a string
based on the configuration of the
Express VI. The Build String
Express VI is available in the
Functions»Output palette.
Converting Strings to Numerics

Scan From String: Converts the input string containing valid
numeric characters to individual numbers. Format string can specify
multiple outputs with differing data types (numeric, Boolean, etc.).
The function can be stretched out to add more output terminals.
Exerciții
1. Să se realizeze un VI care să convertească un număr și un control slide (Trailer)
într-un string și care să concateneze acest string cu un alt string (Header) astfel încât
să rezulte un singur string de ieșire. VI-ul va determina de asemenea lungimea
stringului de ieșire.
2. Să se realizeze un VI care să convertească un număr într-un string și care să concateneze acest string cu alte
stringuri astfel încât să rezulte un singur string de ieșire. VI-ul va determina de asemenea lungimea stringului de
ieșire.




3. Se va realiza un VI care să exemplifice modul de creare a unui tabel, în care fiecare coloană
corespunde unei variabile diferite
C. Fișiere Intrare/Ieșire (I/O)
Operaţiile cu fişiere de intrare / ieşire (I/O) au
   ca scop principal stocarea datelor pe un
   suport şi preluarea datelor dintr-un fişier
Principalele operații ce pot fi realizate sunt:
• Deschidere si închidere fisiere de date;
• Citirea datelor din fișiere si scrierea datelor
   în fisiere;
• Mutarea si redenumirea fisierelor si
   directorilor;
• Crearea de directori și fișiere, specificați în
   controlul cale;
• Scrierea de stringuri, numere, vectori și
   clustere în fișiere.
Fișierele pot fi binare, text sau tabel.
Scrierea/Citirea în fișierele de măsurare
   LabVIEW au extensia “lvm” (*.lvm)
There are 4 levels of file I/O hierarchy: High-Level Utility File VIs,
Intermediate File I/O functions, Advanced File I/O and Express VIs
functions.



                                    Four Hierarchy Levels:
                                    High-level File VIs
                                    Intermediate File VIs and Functions
                                    Advanced File Functions subpalette
                                    Express VIs
The high-level VIs handle all lower level functions transparently and
provide a simplified means of error handling. If an error occurs, a
dialog box appears showing the error.
The Intermediate File I/O functions provide substantially more
flexibility while still handling the lowest level of functionality for you.
You can handle 80-90% of file I/O operations at this level. Encourage
students to use the Intermediate File I/O functions for their
applications
The Advanced File I/O functions manage all file I/O operations
explicitly but are the most complex.

This is a great place to explain the difference between VIs and
Functions. Functions are manilla/yellow, are the lowest level calls
LabVIEW can make, and you do not have access to their block
diagram or source code. VIs included in the functions palette have
white backgrounds and if you look at their block diagrams you will see
they are composed of functions.
D. High-level File I/O VIs

• Write to Spreadsheet File
• Read from Spreadsheet File
• Write Characters to File
• Read Characters from File
• Read Lines from File
E. Model de program pentru un Fișier I/O
 Deschide/       Citește
  Crează/                       Închide    Verifică
                  și/sau
Înlocuiește                      Fișier    Erorile
              Scrie în Fișier
   Fișier
Salvarea (Scrierea) datelor într-un
                       fișier




• Deschide/Crează/Înlocuiește, deschide fișierul existent test1.dat și generează
  fișierul identificator refnum și clusterul error, care este un mănunchi de date ce
  conține informații referitoare la erorile posibile.
• Write File scrie datele
• Close File închide fișierul
• Simple Error Handler verifică erorile
Exemplu de scriere într-un fișier
• Open/Create/Replace opens the existing file TEST1.DAT and generates
  refnum and error cluster
• Write File writes the data
• Close File closes the file
• Simple Error Handler checks for errors
Citirea datelor dintr-un
                         fișier



• Open/Create/Replace opens the file
• Read File reads the specified number of bytes from the file
• Close File closes the file
• Simple Error Handler checks for errors
F. Formarea stringurilor tabelare
• Tabelele sunt unelte foarte utile pentru manipularea și analiza datelor
• Există mai multe formate pentru datele tabelare. Cel mai întâlnit este formatul
  delimitat prin “tab”:
   – Coloanele sunt separate prin caracterul tab
   – Rândurile sunt separate prin caracterul end-of-line (enter)
• Tabelele sunt ușor de realizat utilizând VI-urile fișiere I/O din LabVIEW, cel mai
  utilizat fiind Format into File

 Format Into File convertește
 orice număr într-un string și
 inserează caracterele “tab” si
 “end-of-line”. Ieșirea este un
 string în format tab delimitat
 compatibil cu multe programe
 tabelare.
Crearea fișierelor
          tabelare




Tab   End of Line
Funcţii Expres pentru lucru cu Fişire I/O
• În figura de mai jos se exemplifică utilizarea funcţiei de scriere a
  datelor într-un fişier (Write To Measurement File). Se remarcă
  construcţia fişierului de date cu precizările referitoare la data
  simulării, numărul de eşantioane etc.
  •   LabVIEW Measurement
  •   Writer_Version 2
  •   Reader_Version 2
  •   Separator      Tab
  •   Decimal_Separator                  ,
  •   Multi_Headings Yes
  •   X_Columns      No
  •   Time_Pref      Relative
  •   Operator       Mihai
  •   Date           2009/04/27
  •   Time           11:01:18,363543
  •   ***End_of_Header***
  •
  •   Channels      1
  •   Samples       100
  •   Date          2009/04/27
  •   Time          11:01:18,363543
  •   X_Dimension   Time
  •   X0            0,0000000000000000E+0
  •   Delta_X       0,001000
  •   ***End_of_Header***
  •   X_Value       Sine                  Comment
  •                 0,000000
  •                 0,063418
  •                 0,126580
  •                 0,189233
  •                 0,251123
  •                 0,312003
  •                 0,371627
  •                 0,429755
  •                 0,486152
  •                 0,540593
  •                 0,592857
  •                 0,642734
  •                 0,690024
  •                 0,734536
  •                 0,776090
• Exemplificarea citirii unui fişier de măsurători test_2.lvm şi vizaualizarea
  informaţiei acetuia este prezentată în figura de mai jos.
Exercițiu: Să se realizeze VI-ul de mai jos, care stochează datele
într-un fișier și care afișază valoarea medie, maximă și minimă a
acestor date

More Related Content

Similar to Cap.9

Proiect a 2b_balan_liliana altfel
Proiect a 2b_balan_liliana altfelProiect a 2b_balan_liliana altfel
Proiect a 2b_balan_liliana altfelliliana37
 
CIG. Baze de date curs tema 5 partea 2.pdf
CIG. Baze de date curs tema 5 partea 2.pdfCIG. Baze de date curs tema 5 partea 2.pdf
CIG. Baze de date curs tema 5 partea 2.pdfIonut Rizea
 
Fisiere Pascal/Pascal ABC
Fisiere Pascal/Pascal ABCFisiere Pascal/Pascal ABC
Fisiere Pascal/Pascal ABCm_gutu
 
Reprezentarea algoritmilor ap 21feb2011
Reprezentarea algoritmilor ap 21feb2011Reprezentarea algoritmilor ap 21feb2011
Reprezentarea algoritmilor ap 21feb2011AutoProg
 
Elemente de formatare la nivel de linie sau la nivel de text (text-level sau...
Elemente de formatare la nivel de linie  sau la nivel de text (text-level sau...Elemente de formatare la nivel de linie  sau la nivel de text (text-level sau...
Elemente de formatare la nivel de linie sau la nivel de text (text-level sau...Violeta Tanasescu
 
Parallel programming analysis on OCR
Parallel programming analysis on OCRParallel programming analysis on OCR
Parallel programming analysis on OCRmihneasim
 
Tipuri De Date Si Proprietati
Tipuri De Date Si ProprietatiTipuri De Date Si Proprietati
Tipuri De Date Si ProprietatiLavric
 
Tipuri De Date Si Proprietati
Tipuri De Date Si ProprietatiTipuri De Date Si Proprietati
Tipuri De Date Si ProprietatiLavric
 
2006 intro java_v01
2006 intro java_v012006 intro java_v01
2006 intro java_v01Usurelu Ion
 

Similar to Cap.9 (12)

Proiect a 2b_balan_liliana altfel
Proiect a 2b_balan_liliana altfelProiect a 2b_balan_liliana altfel
Proiect a 2b_balan_liliana altfel
 
CIG. Baze de date curs tema 5 partea 2.pdf
CIG. Baze de date curs tema 5 partea 2.pdfCIG. Baze de date curs tema 5 partea 2.pdf
CIG. Baze de date curs tema 5 partea 2.pdf
 
Cap08
Cap08Cap08
Cap08
 
Fisiere Pascal/Pascal ABC
Fisiere Pascal/Pascal ABCFisiere Pascal/Pascal ABC
Fisiere Pascal/Pascal ABC
 
Reprezentarea algoritmilor ap 21feb2011
Reprezentarea algoritmilor ap 21feb2011Reprezentarea algoritmilor ap 21feb2011
Reprezentarea algoritmilor ap 21feb2011
 
Cap02
Cap02Cap02
Cap02
 
Elemente de formatare la nivel de linie sau la nivel de text (text-level sau...
Elemente de formatare la nivel de linie  sau la nivel de text (text-level sau...Elemente de formatare la nivel de linie  sau la nivel de text (text-level sau...
Elemente de formatare la nivel de linie sau la nivel de text (text-level sau...
 
M3 word 2007
M3 word 2007M3 word 2007
M3 word 2007
 
Parallel programming analysis on OCR
Parallel programming analysis on OCRParallel programming analysis on OCR
Parallel programming analysis on OCR
 
Tipuri De Date Si Proprietati
Tipuri De Date Si ProprietatiTipuri De Date Si Proprietati
Tipuri De Date Si Proprietati
 
Tipuri De Date Si Proprietati
Tipuri De Date Si ProprietatiTipuri De Date Si Proprietati
Tipuri De Date Si Proprietati
 
2006 intro java_v01
2006 intro java_v012006 intro java_v01
2006 intro java_v01
 

More from CostelGxa (9)

Cap.8
Cap.8Cap.8
Cap.8
 
Cap.7
Cap.7Cap.7
Cap.7
 
Cap.6
Cap.6Cap.6
Cap.6
 
Cap.6
Cap.6Cap.6
Cap.6
 
Cap.4
Cap.4Cap.4
Cap.4
 
Cap.3
Cap.3Cap.3
Cap.3
 
Cap.2
Cap.2Cap.2
Cap.2
 
Cap.1
Cap.1Cap.1
Cap.1
 
Cap.10
Cap.10Cap.10
Cap.10
 

Cap.9

  • 1. 9. Stringuri și Fișiere I/O (Intrare/Ieșire) TOPICS A. String controls and indicators B. String functions C. File I/O operations D. High-level File I/O VIs E. Low-level File I/O VIs F. Format text files for use in spreadsheets
  • 2. A. Controale și Indicatoare String (Șir de caractere) • Un rol aparte intre controalele/indicatoarele din mediul LabView il joacă cele pentru lucrul cu sir de caractere si tabele. Componentele din această categorie permit citirea/afisarea acestui tip de date. • Un string este o secvență de caractere (ASCII) afișabile sau neafi șabile (spa țiu, tab, e.t.c.) • Utilizări – afișarea mesajelor, controlul instrumentelor, fișiere I/O • Controalele/indicatoarele string se găsesc în subpaleta Controls» »Text Control or Text Indicator
  • 3. Moduri de afișare a stringurilor • Normal display • code display • Password display • Hex display
  • 4. B. Funcţii String • Funcţiile pentru valorile alfanumerice sunt grupate în subpaleta String a paletei de funcții. Mai frecvent utilizate sunt cele pentru transformarea caracterelor în majuscule (To Upper Case), pentru transformarea caracterelor în minuscule (To Lower Case), de calculare a lungimii unui şir de caractere (String Length), de compunere a unui şir din două şiruri distincte (Concatenate String), de identificare şi înlocuire a unui şir în cadrul altuia (Search and Replace String) etc. • De asemenea, subpaleta String conţine un element String Constant utilizat pentru introducerea în diagramă a valorilor alfanumerice constante.
  • 5. • Funcţia String Length determină numărul de caractere dintr-o valoare alfanumerică. Sunt luate în considerare şi caracterele neafişabile (spaţiu, Tab, sfârşit de linie etc). Numărul de caractere de la ieşirea funcţiei este exprimat ca un număr întreg pe patru octeţi. Funcţia Concatenate Strings posedă un număr de intrări ce poate fi modificat de către utilizator prin dimensionarea simbolului funcţiei (în mod asemănător cu Compound Arithmetic). La ieşirea sa, funcţia generează o valoare alfanumerică obţinută prin concatenarea textelor de la intrările sale, în ordinea de sus în jos.
  • 6. • Funcţia String Subset extrage, din textul conectat la intrarea String, o porţiune de Length caractere începând de la caracterul aflat la poziţia Offset inclusiv (pentru primul caracter se consideră offset = 0). Dacă la intrarea Offset a funcţiei nu este introdusă nici o valoare, funcţia consideră că extragerea se va efectua începând cu primul caracter (valoarea implicită 0 a intrării offset). Dacă la intrarea Length nu este introdusă nici o valoare, funcţia consideră că extragerea se va efectua până la ultimul caracter inclusiv.
  • 7. • Funcţia Replace Substring şterge o porţiune din textul conectat la intrarea String şi introduce în locul respectiv textul conectat la intrarea Substring. Porţiunea înlocuită începe de la caracterul aflat pe poziţia Offset inclusiv şi conţine Length caractere. Intrarea Offset are valoarea implicită 0, iar intrarea Length are o valoare implicită egală cu numărul de caractere legat la intrarea Substring. Dacă la intrarea Substring nu se leagă nici o valoare, funcţia efectuează o ştergere a unei porţiuni, iar dacă la intrarea Length se leagă valoarea 0 funcţia efectuează, de fapt, o inserare a unei porţiuni.
  • 8. • Funcţia Search and Replace String caută textul Search String în textul conectat la intrarea String, iar când îl găseşte, îl înlocuieşte cu textul conectat la intrarea Replace String. Căutarea are loc începând de la poziţia Offset a textului String. Dacă la intrarea Offset nu se conectează nici o valoare, căutarea are loc începând cu prima poziţie. Dacă la intrarea Replace String nu se conectează nici o valoare, atunci funcţia efectuează o ştergere (înlocuire cu text vid). Dacă la intrarea Replace All nu se conectează nici o valoare, atunci funcţia se opreşte după prima apariţie a textului Search String. Dacă la această intrare se conectează o valoare logică de tip True, funcţia efectuează înlocuiri pentru toate apariţiile textului Search String. Funcţia generează textul rezultat în urma înlocuirii la ieşirea Result String, iar la ieşirea Offset Past Replacement generează o valoare indicând poziţia caracterului aflat imediat după ultimul caracter înlocuit.
  • 9. • Funcţia Search/Split String caută textul conectat la intrarea Search String/char în textul conectat la intrarea String. Căutarea se efectuează începând cu poziţia Offset. Dacă textul căutat este găsit, funcţia împarte textul iniţial în două părţi, astfel: partea dinaintea textului căutat (Substring Before Match) şi textul căutat urmat de restul textului în care s-a făcut căutarea (Match + Rest Of String). Funcţia generează la ieşirea Offset Of Match poziţia în care a fost găsit textul căutat. Dacă textul căutat nu a fost găsit, ieşirea Substring Before Match conţine tot textul legat la intrarea String, iar ieşirea Offset Of Match are valoarea -1.
  • 10. • Funcția Format Into String convertește numere într-un șir de caractere (1.28→1.2800). Această funcție nu este folosită doar pentru conversia datelor numerice în date string. Mai pot fi convertite în stringuri următoarele elemente: căi de fișiere, enumerări, date Booleene. De exemplu, utilizând formatul %s un Boolean va fi convertit în "FALSE" sau "TRUE." Utilizând formatul %d, Booleanul va fi convertit în "0" sau "1." Similar, utilizând formatul %s, un Enum va fi convertit în textul său. Utilizând formatul %d, Enum va fi convertit în valoarea sa întreagă.
  • 11. Converting Numerics to Strings The Build String Express VI concatenates an input string. If the inputs are not a string, the inputs are converted to a string based on the configuration of the Express VI. The Build String Express VI is available in the Functions»Output palette.
  • 12. Converting Strings to Numerics Scan From String: Converts the input string containing valid numeric characters to individual numbers. Format string can specify multiple outputs with differing data types (numeric, Boolean, etc.). The function can be stretched out to add more output terminals.
  • 13. Exerciții 1. Să se realizeze un VI care să convertească un număr și un control slide (Trailer) într-un string și care să concateneze acest string cu un alt string (Header) astfel încât să rezulte un singur string de ieșire. VI-ul va determina de asemenea lungimea stringului de ieșire.
  • 14. 2. Să se realizeze un VI care să convertească un număr într-un string și care să concateneze acest string cu alte stringuri astfel încât să rezulte un singur string de ieșire. VI-ul va determina de asemenea lungimea stringului de ieșire. 3. Se va realiza un VI care să exemplifice modul de creare a unui tabel, în care fiecare coloană corespunde unei variabile diferite
  • 15. C. Fișiere Intrare/Ieșire (I/O) Operaţiile cu fişiere de intrare / ieşire (I/O) au ca scop principal stocarea datelor pe un suport şi preluarea datelor dintr-un fişier Principalele operații ce pot fi realizate sunt: • Deschidere si închidere fisiere de date; • Citirea datelor din fișiere si scrierea datelor în fisiere; • Mutarea si redenumirea fisierelor si directorilor; • Crearea de directori și fișiere, specificați în controlul cale; • Scrierea de stringuri, numere, vectori și clustere în fișiere. Fișierele pot fi binare, text sau tabel. Scrierea/Citirea în fișierele de măsurare LabVIEW au extensia “lvm” (*.lvm)
  • 16. There are 4 levels of file I/O hierarchy: High-Level Utility File VIs, Intermediate File I/O functions, Advanced File I/O and Express VIs functions. Four Hierarchy Levels: High-level File VIs Intermediate File VIs and Functions Advanced File Functions subpalette Express VIs
  • 17. The high-level VIs handle all lower level functions transparently and provide a simplified means of error handling. If an error occurs, a dialog box appears showing the error. The Intermediate File I/O functions provide substantially more flexibility while still handling the lowest level of functionality for you. You can handle 80-90% of file I/O operations at this level. Encourage students to use the Intermediate File I/O functions for their applications The Advanced File I/O functions manage all file I/O operations explicitly but are the most complex. This is a great place to explain the difference between VIs and Functions. Functions are manilla/yellow, are the lowest level calls LabVIEW can make, and you do not have access to their block diagram or source code. VIs included in the functions palette have white backgrounds and if you look at their block diagrams you will see they are composed of functions.
  • 18. D. High-level File I/O VIs • Write to Spreadsheet File • Read from Spreadsheet File • Write Characters to File • Read Characters from File • Read Lines from File
  • 19. E. Model de program pentru un Fișier I/O Deschide/ Citește Crează/ Închide Verifică și/sau Înlocuiește Fișier Erorile Scrie în Fișier Fișier
  • 20. Salvarea (Scrierea) datelor într-un fișier • Deschide/Crează/Înlocuiește, deschide fișierul existent test1.dat și generează fișierul identificator refnum și clusterul error, care este un mănunchi de date ce conține informații referitoare la erorile posibile. • Write File scrie datele • Close File închide fișierul • Simple Error Handler verifică erorile
  • 21. Exemplu de scriere într-un fișier • Open/Create/Replace opens the existing file TEST1.DAT and generates refnum and error cluster • Write File writes the data • Close File closes the file • Simple Error Handler checks for errors
  • 22. Citirea datelor dintr-un fișier • Open/Create/Replace opens the file • Read File reads the specified number of bytes from the file • Close File closes the file • Simple Error Handler checks for errors
  • 23. F. Formarea stringurilor tabelare • Tabelele sunt unelte foarte utile pentru manipularea și analiza datelor • Există mai multe formate pentru datele tabelare. Cel mai întâlnit este formatul delimitat prin “tab”: – Coloanele sunt separate prin caracterul tab – Rândurile sunt separate prin caracterul end-of-line (enter) • Tabelele sunt ușor de realizat utilizând VI-urile fișiere I/O din LabVIEW, cel mai utilizat fiind Format into File Format Into File convertește orice număr într-un string și inserează caracterele “tab” si “end-of-line”. Ieșirea este un string în format tab delimitat compatibil cu multe programe tabelare.
  • 24. Crearea fișierelor tabelare Tab End of Line
  • 25. Funcţii Expres pentru lucru cu Fişire I/O • În figura de mai jos se exemplifică utilizarea funcţiei de scriere a datelor într-un fişier (Write To Measurement File). Se remarcă construcţia fişierului de date cu precizările referitoare la data simulării, numărul de eşantioane etc. • LabVIEW Measurement • Writer_Version 2 • Reader_Version 2 • Separator Tab • Decimal_Separator , • Multi_Headings Yes • X_Columns No • Time_Pref Relative • Operator Mihai • Date 2009/04/27 • Time 11:01:18,363543 • ***End_of_Header*** • • Channels 1 • Samples 100 • Date 2009/04/27 • Time 11:01:18,363543 • X_Dimension Time • X0 0,0000000000000000E+0 • Delta_X 0,001000 • ***End_of_Header*** • X_Value Sine Comment • 0,000000 • 0,063418 • 0,126580 • 0,189233 • 0,251123 • 0,312003 • 0,371627 • 0,429755 • 0,486152 • 0,540593 • 0,592857 • 0,642734 • 0,690024 • 0,734536 • 0,776090
  • 26. • Exemplificarea citirii unui fişier de măsurători test_2.lvm şi vizaualizarea informaţiei acetuia este prezentată în figura de mai jos.
  • 27. Exercițiu: Să se realizeze VI-ul de mai jos, care stochează datele într-un fișier și care afișază valoarea medie, maximă și minimă a acestor date

Editor's Notes

  1. A string is a sequence of displayable or nondisplayable (ASCII) characters. Strings often are used to send commands to instruments, to supply information about a test (such as operator name and date), or to display results to the user. String controls and indicators are in the Text Control or Text Indicator subpalette of the Controls palette. Enter or change text by using the Operating or Text tool and clicking in the string control. Strings are resizable. String controls and indicators can have scrollbars: Right-click and select Visible Items » Scrollbar . The scroll bar will not be active if the control or indicator is not tall enough.
  2. String controls and indicators can be configured for several different display modes. You can change display modes by popping-up on the control or indicator while in edit mode. Password Display : Asterisks replace the string text on the front panel. This is useful for concealing passwords for logging into VI. ‘ \\’ Codes Display : Replaces all “unprintable” characters in the string with a ‘\\’ followed by a letter. A list of backslash codes is given on page 7-3. For unprintable characters not on this list, LabVIEW displays a \\ followed by the hex value of the unprintable character (for example, “\\23” = ASCII table character 23). Hex Display : Replaces every character in the string with its ASCII table equivalent. This is useful for serial and GPIB communication.
  3. String functions (cont.): Build String: The Build String Express VI concatenates an input string. If the inputs are not a string, the inputs are converted to a string based on the configuration of the Express VI. The Build String Express VI is available in the Functions»Output palette. Explain the example on the slide.
  4. String functions (cont.): Scan from String: Converts the input string containing valid numeric characters to individual numbers. Format string can specify multiple outputs with differing data types (numeric, Boolean, etc.). The function can be stretched out to add more output terminals. Explain the example on the slide.
  5. File I/O operations pass data to and from files. In LabVIEW, you can use File I/O functions to: Open and close data files Read data from and write data to files Read from and writ to spreadsheet-formatted files Move and rename files and directories Change file characteristics Create, modify, and read a configuration file Write to or read from LabVIEW Measurements files. In this course we will examine how to write to or read from LabVIEW Measurements files (*.lvm files). File I/O VIs and Functions Use the File I/O VIs and functions to open and close files, read from and write to files, create directories and files you specify in the path control, retrieve directory information, and write strings, numbers, arrays, and clusters to files. Use the high-level File I/O VIs located on the top row of the palette to perform common I/O operations, such as writing to or reading from various types of data. Acceptable types can include characters or lines in text files, 1D or 2D arrays of single-precision numeric values in spreadsheet text files, 1D or 2D arrays of single-precision numeric values in binary files, or 16-bit signed integers in binary files. Use low-level File I/O VIs and functions located on the middle row of the palette, and the Advanced File Functions to control each file I/O operation individually. Use the principal low-level functions to create or open, write data to, read data from, and close a file. You also can use low-level functions to create directories; move, copy, or delete files; list directory contents; change file characteristics; or manipulate paths.
  6. There are three levels of file I/O hierarchy: High-Level Utility File VIs, Intermediate File I/O functions, and the Advanced File I/O functions. The high-level VIs handle all lower level functions transparently and provide a simplified means of error handling. If an error occurs, a dialog box appears showing the error. The Intermediate File I/O functions provide substantially more flexibility while still handling the lowest level of functionality for you. You can handle 80-90% of file I/O operations at this level. Encourage students to use the Intermediate File I/O functions for their applications The Advanced File I/O functions manage all file I/O operations explicitly but are the most complex. This is a great place to explain the difference between VIs and Functions. Functions are manilla/yellow, are the lowest level calls LabVIEW can make, and you do not have access to their block diagram or source code. VIs included in the functions palette have white backgrounds and if you look at their block diagrams you will see they are composed of functions. We will study the some of the High-Level File VIs and the Intermediate File I/O functions in this Lesson; we will use the Express VIs in the DAQ lesson
  7. Write to Spreadsheet File: Converts a 1D or 2D array of numbers to a single-precision, tab-delimited string and writes the string to an ASCII file. Useful for quickly creating ASCII spreadsheet files as in the last slide. Read from Spreadsheet File: Reads a tab-delimited ASCII file and converts the data back to a 1D or 2D array of numbers. Useful for reading data created with Write to Spreadsheet File, or data saved as an ASCII file from a spreadsheet program. Write Characters to File: Writes a character string to a file. Read Character from File: Reads a character string from a file. Read Lines from File: Read a specified number of lines from an ASCII file. All of the high-level VIs take care of opening/creating/replacing the file, reading/writing the file, and closing the file in one VI.
  8. Explain the block diagram. Stress the following: “ Hardwiring” the filenames is strictly optional. It is only really useful when you are trying to save time. Most of the time you will want to leave file path unwired to get a dialog box. refnum is a file identifier generated by Open / Create / Replace . It is used by the subsequent file VIs to identify the file being operated on. The error cluster is a bundle of data containing error information. These clusters are a powerful method of handling errors and will be studied in more detail in the LabVIEW Basics II Course. Passing the refnum and error cluster also forces the VIs to execute in order.
  9. Explain the block diagram. Stress the following: “ Hardwiring” the filenames is strictly optional. It is only really useful when you are trying to save time. Most of the time you will want to leave file path unwired to get a dialog box. refnum is a file identifier generated by Open/Create/Replace It is used by the subsequent file VIs to identify the file being operated on. The error cluster is a bundle of data containing error information. These clusters are a powerful method of handling errors and will be studied in more detail in the LabVIEW Basics II Course. Passing the refnum and error cluster also forces the VIs to execute in order. This is the first slide showing the use of an error cluster. Explain what happens if an error occurs.
  10. Explain the block diagram. Emphasize the following: The user must tell the Read File function how many bytes of data to read by wiring that number of bytes to the count terminal. Because file size is wired to count from the Open/Create/Replace VI, the entire file is read by the Read File function.
  11. Explain the block diagram. Emphasize the following: Although there are multiple writes to the file, with the Intermediate File I/O functions, we can make sure the file is opened and closed only once. This saves time. Format into String converts each numeric to a string and inserts a tab character and end-of-line character. The output is a tab-delimited string compatible with most spreadsheet programs. Mention the table structure. A table is a front panel object used to display a 2D array of strings. The table looks much like a spreadsheet.