Εγγραφή δεδομένων σε αρχείο delphi. Κλασική εργασία με αρχεία στους Δελφούς

Παιδικά προϊόντα 21.05.2019

Επισκόπηση προγράμματος Η έκδοση υπολογιστή του Microsoft Excel Viewer θα επιτρέψει... ChercherΤεχνολογία εργασία με αρχείαστο σύστημα

  1. Δελφοί απαιτεί μια συγκεκριμένη διαδικασία:Προπαντός αρχείο. Το σύστημα διασφαλίζει ότι οι άλλες εφαρμογές δεν παρεμβαίνουν εργασία με ένα αρχείο. Αυτό καθορίζει σε ποια λειτουργία ανοίγει. απαιτεί μια συγκεκριμένη διαδικασία:- για αλλαγή ή μόνο ανάγνωση πληροφοριών. Μετά το άνοιγμα αρχείοΤο αναγνωριστικό του επιστρέφεται στο πρόγραμμα, το οποίο θα χρησιμοποιηθεί για να δείξει αυτό απαιτεί μια συγκεκριμένη διαδικασία:σε όλες τις διαδικασίες επεξεργασίας.
  2. Αρχίζει εργασία με ένα αρχείο. Αυτές μπορεί να είναι εγγραφή, ανάγνωση, αναζήτηση και άλλες λειτουργίες.
  3. Αρχείοκλείνει. Τώρα είναι και πάλι διαθέσιμο σε άλλες εφαρμογές χωρίς περιορισμούς. Κλείσιμο αρχείοεγγυάται ότι όλες οι αλλαγές που έγιναν θα αποθηκευτούν, αφού για να αυξηθεί η ταχύτητα εργασίας, οι αλλαγές αποθηκεύονται εκ των προτέρων σε ειδικούς buffer του λειτουργικού συστήματος.
ΣΕ εργασία με αρχείαΈχουν εφαρμοστεί αρκετές μέθοδοι Chercher. Ας συναντηθούμε με τον κλασικό τρόποπου σχετίζονται με τη χρήση μεταβλητές αρχείου. Μια μεταβλητή αρχείου εισάγεται για να δείχνει σε ένα αρχείο. Αυτό γίνεται χρησιμοποιώντας λέξη-κλειδί Αρχείο :

Var F : Αρχείο ;

Λαμβάνεται υπόψη μια μεταβλητή αρχείου που περιγράφεται με αυτόν τον τρόπο άτυπο, και σας επιτρέπει να εργάζεστε με αρχεία με άγνωστη δομή. Τα δεδομένα διαβάζονται και γράφονται byte-byte σε μπλοκ, το μέγεθος των οποίων καθορίζεται κατά το άνοιγμα του αρχείου, έως και 1 byte.

Αλλά πιο συχνά, χρησιμοποιούνται αρχεία που αποτελούνται από μια ακολουθία πανομοιότυπων εγγραφών. Για να περιγραφεί ένα τέτοιο αρχείο, μια ένδειξη του τύπου εγγραφής προστίθεται στην προηγούμενη περιγραφή:

Var F : Αρχείο τουεγγραφή_τύπου ;

Οι βασικοί τύποι μπορούν να χρησιμοποιηθούν ως τύπος ή μπορούν να δημιουργηθούν οι δικοί σας. Είναι σημαντικό μόνο ο τύπος να έχει ένα ακριβώς γνωστό σταθερό μέγεθος σε byte, έτσι, για παράδειγμα, ο τύπος Σειρά V καθαρή μορφήδεν μπορεί να χρησιμοποιηθεί, αλλά μόνο στη μορφή Συμβολοσειρά[N], όπως αναφέρεται στο σεμινάριο Delphi 5.

Τα δεδομένα που διαβάζονται ή εγγράφονται σε ένα αρχείο περιέχονται σε μια κανονική μεταβλητή, η οποία πρέπει να είναι του ίδιου τύπου με τη μεταβλητή αρχείου. Επομένως, πρώτα στο πρόγραμμα περιγράφω προσωπικά επιθυμητό τύπο, και μετά εισάγω δύο μεταβλητές αυτού του τύπου - αρχείο και κανονική:

Για αρχεία κειμένου, θα αναφέρω ξεχωριστά ότι ο τύπος της μεταβλητής αρχείου σε αυτήν την περίπτωση Αρχείο κειμένουκαι ο τύπος είναι κανονικός - Σειρά.

Για να ανοίξετε ένα αρχείο, πρέπει να καθορίσετε πού βρίσκεται. Για να γίνει αυτό, η μεταβλητή αρχείου πρέπει να συσχετιστεί με το επιθυμητό αρχείο, το οποίο καθορίζεται από τη διεύθυνσή του. Η διεύθυνση αρχείου μπορεί να είναι απόλυτη, υποδεικνύοντας τη μονάδα δίσκου και τους καταλόγους ("C:\My Documents\My Pictures\FileName.ini") ή σχετική, και στη συνέχεια δημιουργείται στον φάκελο με .exeαρχείο προγράμματος. Για να ορίσετε μια σχετική διεύθυνση, απλώς καθορίστε το όνομα αρχείου με την απαιτούμενη επέκταση. Αυτό γίνεται από τον χειριστή AssignFile:

AssignFile(SaveF, "C:\My Documents\My Pictures\FileName.ini");
AssignFile(SaveF, "FileName.ini");

Το αρχείο θα πρέπει τώρα να είναι ανοιχτό.
Άνοιγμα αρχείου από τον χειριστή Ξαναγράφωθα οδηγήσει στην εκ νέου δημιουργία του αρχείου, π.χ. υπάρχον αρχείοθα χωρίς προειδοποίησηκαταστράφηκε και στη θέση του θα δημιουργηθεί ένα νέο κενό αρχείοδεδομένου τύπου, έτοιμο να γράψει δεδομένα. Εάν το αρχείο δεν υπήρχε, θα δημιουργηθεί.
Άνοιγμα αρχείου από τον χειριστή Επαναφοράθα ανοίξει ένα υπάρχον αρχείο για ανάγνωση ή εγγραφή δεδομένων και ο δείκτης του θα οριστεί στην αρχή του αρχείου :

Rewrite(SaveF);
Reset(SaveF);

Κάθε μία από αυτές τις προτάσεις μπορεί να έχει μια δεύτερη προαιρετική παράμετρο, σημαντική για μη πληκτρολογημένα αρχεία, η οποία καθορίζει το μήκος της εγγραφής του μη πληκτρολογημένου αρχείου σε byte:

Rewrite(SaveF, 1);
Reset(SaveF, 1);

Το αρχείο διαβάζεται από τον χειριστή Ανάγνωση:

Read(SaveF, SaveV);

Η εγγραφή σε ένα αρχείο γίνεται από τον χειριστή Γράφω:

Write(SaveF, SaveV);

Σε αυτήν την περίπτωση, η ανάγνωση και η εγγραφή εκτελούνται από την τρέχουσα θέση του δείκτη και, στη συνέχεια, ο δείκτης ορίζεται στην επόμενη εγγραφή. Μπορείτε να ελέγξετε αν υπάρχει απαιτούμενο αρχείο, χειριστής FileExists:

αν FileExists ("FileName.ini")
τότε Read(SaveF, SaveV);

Μπορείτε να εξαναγκάσετε έναν δείκτη στην επιθυμητή εγγραφή από τον χειριστή Αναζήτηση (SaveF, N), όπου Ν είναι ο αριθμός την επιθυμητή καταχώρηση, το οποίο, όπως σχεδόν όλα στον προγραμματισμό, βασίζεται στο μηδέν:

Seek(SaveF, 49); - ρύθμιση του δείκτη στην 50η εγγραφή.

Κατά τη διαδοχική ανάγνωση από ένα αρχείο, αργά ή γρήγορα θα φτάσει στο τέλος του αρχείου και πότε περαιτέρω ανάγνωσηθα προκύψει σφάλμα. Μπορείτε να ελέγξετε αν έχει φτάσει το τέλος του αρχείου χρησιμοποιώντας τον τελεστή ΕΟΦ(συντομογραφία μι nd Οφά φά ile), που ισούται με αληθής, αν διαβαστεί τελευταία καταχώρησηκαι ο δείκτης βρίσκεται στο τέλος του αρχείου:

ενώ(όχι EOF(SaveF)) κάνω
Read(SaveF, SaveV);

Αντίθετα για αρχεία κειμένου ΑνάγνωσηΚαι Γράφωχρησιμοποιούνται χειριστές ReadlnΚαι Γράφτηκε, μπορεί να ανιχνεύσει το τέλος μιας γραμμής. Τα σχόλια παρέχουν μια διαδικασία για την ανάγνωση ενός αρχείου κειμένου.

Χειριστής Περικοπή (SaveF)σας επιτρέπει να αποκόψετε (διαγράψτε ή, αν θέλετε, διαγράψτε!) όλες τις καταχωρήσεις σε ένα αρχείο, ξεκινώντας από την τρέχουσα θέση του δείκτη μέχρι το τέλος του αρχείου.

Στο τέλος της εργασίας με ένα αρχείο, πρέπει να το κλείσετε. Αυτό γίνεται από τον χειριστή CloseFile(SaveF) ;

Τώρα μπορείτε να αλλάξετε το πρόγραμμα από το πρώτο μέρος του μαθήματος, το οποίο θυμάται τη θέση του στην οθόνη. Παραλείπω την περιγραφή των μεταβλητών που φαίνεται στο παραπάνω σχήμα.

Δημιουργήστε ένα πρόγραμμα χειρισμού συμβάντων φόρμας OnCreateμε το ακόλουθο περιεχόμενο:

διαδικασία TForm1.FormCreate(Αποστολέας: TObject) ;
αρχίζω
AssignFile(SaveF, "Init.ini");
αν FileExists ("Init.ini") τότε
αρχίζω
Reset(SaveF) ;
Read(SaveF, SaveV) ;
Form1.Left:= SaveV.X ;
Form1.Top:= SaveV.Y ;
Form1.Caption:=SaveV.Caption ; //Οι μεταβλητές μας αποθηκεύουν επιπλέον τον τίτλο της Φόρμας!
τέλος ;
τέλος ;

Τώρα πρέπει να δημιουργήσετε ένα πρόγραμμα χειρισμού συμβάντων OnClose:

διαδικασία TForm1.FormClose(Αποστολέας: TObject; var Ενέργεια: TCloseAction) ;
αρχίζω
Rewrite(SaveF) ; //Δεν χρειάζεται να ελέγξετε αν υπάρχει το αρχείο, ας το δημιουργήσουμε ξανά!
SaveV.X:= Form1.Left ;
SaveV.Y:= Form1.Top ;
SaveV.Caption:= Form1.Caption ;
Write(SaveF, SaveV) ;
CloseFile(SaveF) ;
τέλος ;

ΣΕ σε αυτή την περίπτωσητο αρχείο διαβάζεται και γράφεται εκεί που το έχουμε καθορίσει. Αλλά πρέπει επίσης να μπορείτε να επιλέξετε το επιθυμητό αρχείο σε ένα πρόγραμμα που εκτελείται. Η περιγραφή αυτού βρίσκεται στο

Παρά το γεγονός ότι στους Δελφούς υπάρχουν πολλές μέθοδοι που σας επιτρέπουν να αλληλεπιδράτε με αρχεία, η τεχνολογία λειτουργίας απαιτεί την τήρηση μιας συγκεκριμένης σειράς ενεργειών:

1. Το αρχείο πρέπει να είναι ανοιχτό. Άλλες εφαρμογές δεν πρέπει να παρεμβαίνουν στην εργασία με το αρχείο, το σύστημα παρακολουθεί προσεκτικά αυτό. Ταυτόχρονα, το σύστημα καθορίζει για ποιους σκοπούς ανοίγει το αρχείο. Υπάρχουν πολλές επιλογές εδώ: να διαβάσετε ή να κάνετε αλλαγές.

Μετά τη δημιουργία ή το άνοιγμα ενός εγγράφου, το σύστημα λαμβάνει ένα ειδικό αναγνωριστικό, το οποίο θα χρησιμοποιηθεί ως δείκτης σε αυτό το αρχείο σε όλες τις επόμενες διαδικασίες επεξεργασίας.

3. Αφού ολοκληρωθούν όλες οι απαραίτητες ενέργειες και εγγραφεί το αρχείο, το έγγραφο κλείνει. Από αυτή τη στιγμή, γίνεται διαθέσιμο σε άλλες εφαρμογές εντελώς χωρίς περιορισμούς. Αξίζει να σημειωθεί ότι το κλείσιμο του αρχείου εγγυάται ότι όλες οι αλλαγές που έγιναν θα αποθηκευτούν. Ετσι, Η εγγραφή των απαιτούμενων δεδομένων στο αρχείο Delphi ολοκληρώθηκε με επιτυχία.

Αν αυτό το καθήκονφαίνεται αρκετά περίπλοκο, τότε μπορείτε να ζητήσετε βοήθεια από επαγγελματίες που, εκτός από τους Delphi, γνωρίζουν όλα τα απαραίτητα για τη διαχείριση Linux.

Γράψιμο σε αρχείο κειμένου Delphi

Στους Δελφούς, ένα αρχείο αναπαρίσταται ως μια ακολουθία δεδομένων του ίδιου τύπου. Με άλλα λόγια, πρόκειται για έναν αρκετά μεγάλο πίνακα, το μέγεθος του οποίου είναι πρακτικά απεριόριστο. Για να είναι πιο εύκολη η εγγραφή αρχείο κειμένου Delphi, κάθε έγγραφο αντιπροσωπεύεται ως μεταβλητή αρχείου.

Για να εργαστείτε με έγγραφα κειμένουχρησιμοποιείται ο τύπος TextFile, ο οποίος είναι γραμμένος ως εξής:

Μεταβλητή Var: Πληκτρολογήστε TextFile;
Για να αποκτήσετε πρόσβαση στο αρχείο, χρησιμοποιήστε τη διαδικασία AssignFile(). Μόλις αποκτηθεί πρόσβαση στο αρχείο, μπορεί να ανοίξει χρησιμοποιώντας τις διαδικασίες Επαναφορά, Επανεγγραφή. Πιο αναλυτικά, η διαδικασία Επαναφορά()ανοίγει ένα έγγραφο που δημιουργήθηκε προηγουμένως και τη διαδικασία Ξαναγράφω()σας επιτρέπει να δημιουργήσετε νέο αρχείοή καθαρίστε την υπάρχουσα. Το αρχείο κλείνει χρησιμοποιώντας την ειδική διαδικασία CloseFile. Μπορείτε να γράψετε σε ένα αρχείο κειμένου Delphi χρησιμοποιώντας διαδικασίες όπως το Write ή το WriteLn.

Ηχογράφηση σε excel
Σε περίπτωση που είναι απαραίτητο να γίνει εγγραφή σε excel Delphi, πρέπει να χρησιμοποιήσετε έναν συγκεκριμένο αλγόριθμο ενεργειών. Αρχικά, δημιουργείται ένας πίνακας παραλλαγής, στη συνέχεια εισάγονται δεδομένα σε αυτόν τον πίνακα και, χρησιμοποιώντας μία λειτουργία, ολόκληρος αυτός ο πίνακας γράφεται στο αρχείο excel. Αξίζει να σημειωθεί το γεγονός ότι η εγγραφή σε excel είναι πολύ σχετική πρόσφατα, καθώς αυτός ο επεξεργαστής χρησιμοποιείται ευρέως για την ανάπτυξη διαφόρων αναφορών και έντυπων φορμών.

Οταν μιλάμε γιασχετικά με τη λειτουργία ενός προγράμματος με ένα αρχείο κειμένου, συνεπάγεται διαδικασίες για την εισαγωγή δεδομένων από ένα αρχείο στο πρόγραμμα ή, αντίθετα, εγγραφή αυτών των δεδομένων σε ένα αρχείο από το πρόγραμμα. Αποδεκτό για αρχείο κειμένου απλή δουλειάμε ένα αρχείο χωρίς ειδικούς πρόσθετους μηχανισμούς που χρησιμοποιούνται για εργασία με εξειδικευμένα αρχεία, όπως κατά τη φόρτωση δεδομένων από το Excel ή την εργασία με ένα πρόγραμμα βάσης δεδομένων. Φυσικά, οι Delphi έχουν τη δυνατότητα να εργάζονται με αρχεία χρησιμοποιώντας στοιχεία. Αλλά αυτό το άρθρο εξετάζει τον μηχανισμό για την άμεση εργασία με ένα αρχείο κειμένου χωρίς τη χρήση πρόσθετων στοιχείων.

Έτσι, μέσα γενική άποψη, η εργασία με το αρχείο αποτελείται από τα ακόλουθα βήματα:

1. σύνδεση με αρχείο – σύνδεση με εξωτερικό αρχείο, ένδειξη τρόπου σύνδεσης.

2. Εκτέλεση λειτουργιών εγγραφής σε αρχείο ή ανάγνωση από αρχείο.

3. Ολοκλήρωση εργασίας με το αρχείο.

Σύνδεση σε αρχείο

Για να συνδέσετε ένα πρόγραμμα με ένα αρχείο, χρησιμοποιείται μια ειδική μεταβλητή - "Μεταβλητή αρχείου". Δηλώνεται με τον ίδιο τρόπο όπως κάθε μεταβλητή στους Δελφούς. Ο τύπος αυτής της μεταβλητής μπορεί να είναι Αρχείογια δακτυλογραφημένα (αποθήκευση δεδομένων ορισμένου τύπου) αρχεία ή μπορείτε να καθορίσετε Αρχείο κειμένου, το οποίο θα υποδεικνύει τον τύπο του κανονικού αρχείου κειμένου. Δήλωση μεταβλητής:

var
f:TextFile;

Ο εκτελέσιμος κώδικας του προγράμματος συνδέεται με ένα εξωτερικό αρχείο:

AssignFile(f, "input.txt" );

Ομάδα AssignFile, συσχετίζει μια μεταβλητή αρχείου με ένα εξωτερικό αρχείο. Η δεύτερη παράμετρος καθορίζει τη διεύθυνση αρχείου. Μπορεί να προσδιοριστεί σχετικό ή απόλυτο. Εάν καθορίσετε μόνο το όνομα του αρχείου, το πρόγραμμα θα προσπαθήσει να το βρει στον ίδιο κατάλογο όπου βρίσκεται το ίδιο. Η απόλυτη διαδρομή καθορίζεται από τον ριζικό δίσκο:

AssignFile(f, "C:\myprog\input.txt" );

Η χρήση ενός σχετικού καταλόγου καθιστά δυνατή τη μη σύνδεση με συγκεκριμένες μονάδες δίσκου και διευθύνσεις. Για παράδειγμα:

AssignFile(f, "data\input.txt" ); // σε έναν υποφάκελο σε σχέση με τον κατάλογο με το πρόγραμμα
AssignFile(f, "..\input.txt" ); // ένα επίπεδο πάνω από τον κατάλογο του προγράμματος
AssignFile(f, "..\data\input.txt"); // σε έναν υποφάκελο ένα επίπεδο πάνω από τον κατάλογο του προγράμματος

Αφού πραγματοποιηθεί η σύνδεση, εκτελείται μια διαδικασία που ορίζει τον τρόπο εργασίας με το αρχείο. Βασικά είναι η λειτουργία ανάγνωσης ή εγγραφής. Αυτές οι λειτουργίες αντιστοιχίζονται από διαδικασίες Επαναφορά()(για ανάγνωση) και ξαναγράφω()(για την ιστορία):

Επαναφορά (f);
Επανεγγραφή(f);

* Για την ομάδα Ξαναγράφω()Θα πρέπει να ληφθεί υπόψη ότι όταν εκτελείται, είτε δημιουργεί το αρχείο που καθορίζεται στη μεταβλητή αρχείου, είτε εάν υπάρχει ήδη, αντικαθιστά ξανά το αρχείο, διαγράφοντας το παλιό χωρίς καμία προειδοποίηση.

Οποιαδήποτε από τις παραπάνω εντολές μπορεί να χρησιμοποιηθεί χωρίς την εντολή AssignFile(). Για να το κάνετε αυτό, απλώς καθορίστε τη διαδρομή προς το αρχείο ως δεύτερη παράμετρο. Έτσι, θα συνδέσει αμέσως το αρχείο στη μεταβλητή αρχείου και θα εκχωρήσει τον τρόπο λειτουργίας με αυτό το αρχείο:

Reset(f, "C:\myprog\input.txt" ); // διαβάστε
Rewrite(f, "C:\myprog\input.txt" ); // εγγραφή

Λειτουργίες αρχείων

Για να διαβάσετε από ένα αρχείο, πρέπει να ορίσετε μια λειτουργία ανάγνωσης και να χρησιμοποιήσετε την εντολή Readln(), το οποίο θα εισάγει μία γραμμή τη φορά από το αρχείο σε μια μεταβλητή συμβολοσειράς. Στη συνέχεια, μπορείτε να κάνετε τις απαραίτητες ενέργειες με αυτήν την αλλαγή.

Readln(f, s);

Συνήθως μια δήλωση βρόχου χρησιμοποιείται για τη φόρτωση όλων των γραμμών από ένα αρχείο. Για να προσδιορίσετε ότι το αρχείο έχει τελειώσει, η συνάρτηση ΕΟΦ()(Τέλος αρχείου). Αυτό δημιουργεί έναν βρόχο στον οποίο όλες οι γραμμές του αρχείου εισάγονται διαδοχικά σε μια μεταβλητή συμβολοσειράς και τελειώνει όταν τελειώσει το αρχείο:


Readln(f, s);
τέλος ;

Για εγγραφή, αντιστοιχίστε τη λειτουργία εγγραφής σε ένα αρχείο και την εντολή Writeln()η εγγραφή γίνεται γραμμή προς γραμμή.

Writeln(f, "κείμενο");

Κλείσιμο αρχείου

Μετά την ολοκλήρωση της εργασίας με αρχεία, ειδικά εάν έχουν γραφτεί δεδομένα σε αυτά, είναι απαραίτητο να κλείσετε σωστά την εργασία με τη μεταβλητή αρχείου. Αυτό γίνεται για να αποθηκευτούν όλες οι αλλαγές που έγιναν στο αρχείο.

CloseFile(f);

Παραδείγματα εργασίας με αρχεία κειμένου στους Δελφούς

Ανάγνωση μιας μεμονωμένης τιμής από ένα αρχείο σε μια μεταβλητή:

var
f:TextFile;
s:String;
αρχίζω
AssignFile(f, "input.txt" );
Επαναφορά (f);

Readln(f, s);

CloseFile(f);
τέλος ;


Φορτώστε όλες τις γραμμές ενός αρχείου στο στοιχείο Σημείωση:

var
f:TextFile;
s:String;
αρχίζω
AssignFile(f, "input.txt" );
Επαναφορά (f);

ενώ (όχι ΕΟΦ(στ)) αρχίζουν
Readln(f, s);
myMemo.Lines.Add(s);
τέλος ;

CloseFile(f);
τέλος ;

Θα πρέπει να σημειωθεί ότι για αυτήν την εργασία είναι ευκολότερο να χρησιμοποιήσετε την εντολή του ίδιου του στοιχείου Memo LoadFromFile().

myMemo.Lines.LoadFromFile("input.txt" );


Γράψτε τη γραμμή στο αρχείο:

var
f:TextFile;
αρχίζω
AssignFile(f, "input.txt" );
Επανεγγραφή(f);

Writeln(f, "Το κείμενό μου");

CloseFile(f);
τέλος ;


Γράψτε όλες τις γραμμές από το στοιχείο Σημείωση σε ένα αρχείο κειμένου:

var
f:TextFile;
i: Ακέραιος αριθμός;
αρχίζω
AssignFile(f, "input.txt" );
Επανεγγραφή(f);

για i:= 0 στο myMemo.Lines.Count - 1 do
Writeln(f, myMemo.Lines[i]);
CloseFile(f);
τέλος ;

Όσο για την ανάγνωση από ένα αρχείο στο Memo, υπάρχει και εδώ μια ειδική εντολή:

myMemo.Lines.SaveToFile("input.txt" );

Θα εξετάσουμε λεπτομερώς τον τρόπο αντιγραφής, διαγραφής και μετονομασίας αρχείων. Ας μάθουμε πώς να διαβάζουμε και να γράφουμε πληροφορίες σε πληκτρολογημένα αρχεία.

Αντιγραφή αρχείων χρησιμοποιώντας .

Για να γίνει αυτό, πρέπει να καλέσουμε μόνο μία συνάρτηση, η οποία αντιγράφει συγκεκριμένα αρχεία. Αυτή είναι η συνάρτηση CopyFile(). Έχει τρεις παραμέτρους, δύο από τις οποίες απαιτούνται. Εδώ είναι η πλήρης σύνταξη.
CopyFile ("διαδρομή προς το αρχικό αρχείο", "Διαδρομή προς το σημείο αντιγραφής", Είτε θα γίνει αντικατάσταση είτε όχι)

Παράδειγμα: CopyFile("D:sekretBD.txt","C: ame.txt", true);

Στην πρώτη παράμετρο μπορείτε να καθορίσετε όχι μόνο πλήρης διαδρομήστο αρχείο. Αν καθορίσουμε, για παράδειγμα, τη διαδρομή “sekretBD.txt”, τότε το πρόγραμμά μας θα αναζητήσει αυτό το αρχείο στον κατάλογό του. Το όνομα και η άδεια πρέπει να καθοριστούν ακριβώς όπως είναι για το αρχείο, διαφορετικά το πρόγραμμα απλά δεν θα βρει το αρχείο.
Στη δεύτερη παράμετρο μπορείτε επίσης να καθορίσετε σχετική διαδρομήκαι εκεί μπορείτε να καθορίσετε το όνομα και την επέκταση αρχείου όπως θέλετε. Εκείνοι. Χρησιμοποιώντας αυτή τη λειτουργία μπορείτε να κάνετε και μετονομασία.
Η τρίτη παράμετρος είναι υπεύθυνη για την αντικατάσταση του αρχείου. Αν καθορίσουμε true, τότε το αρχείο δεν θα αντικατασταθεί και αν false, τότε το πρόγραμμα θα αντικαταστήσει το αρχείο.

Μετονομασία αρχείων με χρήση

Η συνάρτηση RenameFile() είναι υπεύθυνη για τη μετονομασία αρχείων. Έχει 2 παραμέτρους. Εδώ είναι η πλήρης σύνταξή του
RenameFile ("διαδρομή στο αρχείο", "νέο όνομα");
Για να είμαι ειλικρινής, δεν είμαι ιδιαίτερα ευχαριστημένος με τη σύνταξη αυτής της συνάρτησης. Σε αυτό, πρέπει επίσης να καθορίσετε την πλήρη διαδρομή και στις δύο παραμέτρους. Εκείνοι. αν για παράδειγμα γράφουμε έτσι

RenameFile("C:2.txt","3.txt");

Στη συνέχεια θα αντιγράψει το αρχείο στον κατάλογο του προγράμματος. Εκείνοι. Αποδεικνύεται ότι μπορεί να χρησιμεύσει και ως αντίγραφο. Είναι λίγο περίεργο.

Διαγραφή αρχείων με χρήση

Λοιπόν, όλα είναι πολύ απλά εδώ. Η συνάρτηση που μπορεί να χρησιμοποιηθεί για τη διαγραφή ενός αρχείου ονομάζεται ως εξής:

DeleteFile("C:myprofile.txt");

Το μόνο πράγμα είναι ότι δεν διαγράφει πάντα το αρχείο 100%. Όταν το αρχείο είναι προστατευμένο, δεν θα μπορεί να το διαγράψει.

Εργασία με πληκτρολογημένα αρχεία

Τι είναι ένα δακτυλογραφημένο αρχείο; Αυτό είναι ένα αρχείο με συγκεκριμένη δομή. Συνήθως αυτή η δομή είναι εγγραφές και βασικοί τύποι. Γενικά, είναι σημαντικό ο τύπος να έχει γνωστό σταθερό μέγεθος, Γι' αυτό τύπου stringδεν μπορεί να χρησιμοποιηθεί, πρέπει να κάνετε το εξής: String[N].
Πρώτα πρέπει να δηλώσουμε μια μεταβλητή όπου θα αποθηκευτούν τα δεδομένα από το αρχείο. Αυτό γίνεται ως εξής:

Var f: αρχείο του<Тип>
Για παράδειγμα, f: αρχείο συμβολοσειράς;

Στη συνέχεια πρέπει να συνδεθούμε στο αρχείο. Υπάρχει μια εντολή AssignFile για αυτό. Για να καλέσετε, πρέπει να καθορίσετε δύο παραμέτρους, αυτή είναι η μεταβλητή που δηλώσαμε παραπάνω και η διαδρομή προς το αρχείο. Για παράδειγμα

AssignFile(f,"C:delphi.ini");

Τώρα πρέπει να ανοίξει το αρχείο. Μπορεί να ανοίξει με δύο τρόπους: με ή χωρίς εκ νέου άλεσμα. Η μέθοδος Rewrite ανοίγει ένα αρχείο αφού το δημιουργήσει πρώτα. Εκείνοι. αν το αρχείο δεν βρίσκεται στη διαδρομή που καθορίζουμε, θα το δημιουργήσει. Εάν υπήρχε ήδη ένα τέτοιο αρχείο, θα διαγραφεί και θα δημιουργηθεί εκ νέου καθαρό αρχείο. Η μέθοδος Reset ανοίγει το αρχείο και τοποθετεί τον δείκτη στην αρχή του αρχείου. Αλλά αυτή η μέθοδος είναι επικίνδυνη γιατί εάν το αρχείο που καθορίζεται στη σύνδεση δεν υπάρχει, το πρόγραμμα θα διακοπεί με σφάλμα. Έτσι για σωστή εφαρμογήΗ συνάρτηση Reset πρέπει να λέει στον μεταγλωττιστή να απενεργοποιήσει τα σφάλματα. Αυτό ορίζεται από την οδηγία ($I-) δηλ. Η πλήρης σύνταξη για τη λειτουργία επαναφοράς θα είναι:

($I-)
Επαναφορά (f);
($I+)

Μετά από αυτό, πρέπει να ελέγξετε αν το αρχείο έχει ανοίξει ή όχι. Αυτό μπορεί να γίνει χρησιμοποιώντας τη συνάρτηση IOresult. Αν δεν είναι μηδέν, τότε όλα είναι επιτυχημένα.
Πλήρης σύνταξη:

($I-)
Επαναφορά (f);
($I+)
Αν προκύψει IO<>0 τότε<ваш код>

Η συνάρτηση FileExists θα σας βοηθήσει επίσης να ελέγξετε. Πρέπει να υποδεικνύει τη διαδρομή προς το αρχείο.
Για να διαβάσετε ένα αρχείο, χρησιμοποιήστε τη συνάρτηση Read(), η οποία καθορίζει δύο παραμέτρους: μεταβλητή αρχείουκαι ο τύπος εγγραφής, στην περίπτωσή μας είναι string. Σύνταξη:

Για να γράψετε σε ένα αρχείο, χρησιμοποιήστε τη συνάρτηση Write(), η οποία καθορίζει τις ίδιες δύο παραμέτρους: τη μεταβλητή αρχείου και τον τύπο εγγραφής, στην περίπτωσή μας είναι συμβολοσειρά. Σύνταξη:

Ενώ όχι εοφ(στ) κάνω
Read(f,String);

Υπάρχει επίσης μια λειτουργία αναζήτησης, με την οποία μπορούμε να πάμε στον δίσκο που μας ενδιαφέρει. Για παράδειγμα, πρέπει να αποκτήσουμε πρόσβαση στην εγγραφή 20 και κάνουμε αυτό:

Υπάρχει επίσης μια συνάρτηση περικοπής, με την οποία μπορούμε να διαγράψουμε όλες τις εγγραφές σε ένα αρχείο, ξεκινώντας από τη θέση του δείκτη. Η θέση μπορεί να καθοριστεί χρησιμοποιώντας τη συνάρτηση αναζήτησης, για όσους δεν καταλαβαίνουν.

Αφού ολοκληρώσετε όλες τις λειτουργίες με το αρχείο, πρέπει να το κλείσετε χρησιμοποιώντας τη συνάρτηση CloseFile(f).
Αυτό είναι όλο. Αυτό ολοκληρώνει το μάθημα. Τα λέμε στο site!


1) Κατευθύνετε την έξοδο του προγράμματός σας σε ένα αρχείο.
2) Κατευθύνετε τη ροή εξόδου του προγράμματός σας στον εκτυπωτή.
3) Ανάγνωση από το αρχείο εισόδου.

Κατεύθυνση της εξόδου του προγράμματός σας σε ένα αρχείο

Συχνά οι καθηγητές μου, για να βεβαιωθούν για την ειλικρίνειά μου και να πιστέψουν ότι το πρόγραμμα δημιουργήθηκε από εμένα, απαιτούν την πλήρη καταχώρισή του ή την αναφορά μου ως ενός από τους συγγραφείς. Στη συνέχεια, θέλουν όλα τα δεδομένα που δημιουργούνται από το πρόγραμμα να εξάγονται σε ένα αρχείο. Πως γίνεται όμως αυτό στους Δελφούς ή στο απλό Pascal;;;

Μόλις στους Δελφούς....


Κατεύθυνση της εξόδου του προγράμματός σας σε εκτυπωτή

Σε ορισμένες περιπτώσεις, μπορεί να χρειαστεί να εκτυπώσετε τα δεδομένα που δημιουργούνται από το πρόγραμμα απευθείας σε έναν εκτυπωτή. Δείτε πώς να το κάνετε:


Ανάγνωση από αρχείο εισόδου

Θα είναι πολύ χρήσιμο να έχετε τη λειτουργία ανάγνωσης από ένα αρχείο που μπορεί να μεταφερθεί από άλλο άτομο. Ακολουθεί ένα παράδειγμα για το πώς μπορεί να γίνει αυτό.


Στον Πασκάλ...


(BEGIN INFILE.TXT) 2 Hello world Το πρόγραμμά μου λειτουργεί και αυτό το κείμενο είναι απόδειξη αυτού. (END INFILE.TXT) Για λήψη πρόσθετες πληροφορίεςανατρέξτε στον Οδηγό προγραμματιστή. Διαβάστε την περιγραφή των λειτουργιών AssignFile, Assign, Reset, Rewrite, readln, writeln, Close, CloseFile.

Συνιστούμε να διαβάσετε

Κορυφή