Tartalomjegyzék

Szöveges állományok

1. Fájl típusú változó deklarálása

fajlvaltozo2t.pas
var
  t: text;

2. Fájl változó hozzárendelése a háttértáron lévő állományhoz

fajlhozzarendel2t.pas
Assign(t, 'fajl.txt');

3. Fájl beviteli-kiviteli hibáinak vizsgálata fájlmegnyitásakor

fajlolvasasnyitas2t.pas
{$i-}
Reset(t);
if IOResult <> 0 then 
begin
  Write ('Fajlkezelesi hiba!');
  Readln;
  Halt(1);
end;
{$i+}

4. Megnyitás írásra vagy újraírásra

fajlirasnyitas2t.pas
Rewrite(t);

5. Megnyitás hozzáírásra

fajlhozzairas2t.pas
Append(t);

6. Írás a fájlba

fajlbairas2t.pas
Write(t, adatok);
Writeln(t, adatok);

7. Olvasás a fájlból

fajlbololvasas2t.pas
Read(t, valtozo);
Readln(t, valtozo);

8. Az összes adat beolvasása a fájlból

fajlmindbeolvas2t.pas
index:=0;
While not eof(t) do
begin
  index:=index+1;
  Read(t, tomb[index]);
end;
beolvasott_adatmennyiseg := index;

9. A fájl bezárása

fajlbezaras2t.pas
Close(t);

Szövegfájl kezelése Pascal nyelven

szovegfile_kezeles.pas
program szovegfile_kezeles;
var t: text; i, szam:integer;
begin
  assign(t, 'szamok.txt');
  rewrite(t);
  for i:=1 to 10 do
    writeln(t, i);
  close(t);
 
  reset(t);
  while not eof(t) do begin
    readln(t, szam);
    writeln(szam);
  end;
  close(t);
  readln;
end.

Szövegfájl kezelése C nyelven

szovegfile_kezeles.c
#include <stdio.h>
 
int main(void)
{
    FILE* fp;
    /* file-open, w = write - írás*/
    fp = fopen("szamok.txt", "w");
    if (fp != NULL)
    {
        int i;
        for (i = 1; i <= 10; ++i)
            fprintf(fp, "%d\n", i); /* file-printf */
        fclose(fp);                 /* file-close */
    }
    else
    {
        perror("Nem sikerült megnyitni a fájlt");
    }
    /* file-open, r = read - olvasás */
    fp = fopen("szamok.txt", "rt"); /* megnyitás */
    if (fp == NULL)
    {
        perror("szamok.txt megnyitása");
        return;    /* nem folytathatjuk! */
    }
 
    /*beolvasás fájlból */
    char s[5];
    while (fscanf(fp, "%s\n", s) > 0)
    {
        printf("%d\n", atoi(s));
    }
 
    fclose(fp);
    return 0;
}

Szövegfájl kezelése C++ nyelven

szovegfile_kezeles.cpp
// Alapvető file-műveletek
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main ()
{
    // Hozzárendeli írásra a myfile-t
    ofstream myfile;
    // Ez nyitja meg a file-t írásra
    myfile.open ("szamok.txt");
    for (int szam = 1; szam <=10; szam++)
    {
        myfile <<szam <<endl;
    }
    // Hozzárendelés megszüntetése a file lezárásával.
    myfile.close();
 
    //beolvasás
    string line;
    ifstream myfilein ("szamok.txt");
    if (myfilein.is_open())
    {
        while ( getline (myfilein,line) )
        {
            cout << line << '\n';
        }
        myfilein.close();
    }
 
    else cout << "Nem tudtam megnyitni a fájlt!";
    return 0;
}

Szövegfájl kezelése C# nyelven

szovegfile_kezeles.cs
using System;
using System.IO;
 
namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            using (StreamWriter sw = new StreamWriter("szamok.txt"))
            {
                {
                    for (int i = 1; i <= 10; i++)
                    {
                        sw.WriteLine(i);
                    }
                }
 
            }
 
            string line = "";
            using (StreamReader sr = new StreamReader("szamok.txt"))
            {
                while ((line = sr.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
            Console.ReadKey();
        }
    }
}

A szamok.txt tartalma

Ez lesz a konzolkimenet is

szamok.txt
1
2
3
4
5
6
7
8
9
10

Órai gyakorlat

feleles.pas
program feleles;
var t:text;
    i,n,x:integer;
    a:array [1..30] of string;
begin
  assign(t,'nevsor.txt');
  reset(t);
  i:=0;
  while not eof(t) do
  begin
    inc(i);
    readln(t,a[i]);
    writeln(a[i]);
  end;
  n:=i;
  close(t);
  randomize;
  x:=1+random(n);
  writeln;
  writeln('Felelo: ',a[x]);
  readln;
end.
gyakorlatvedes.pas
program gyakorlatvedes;
var t:text;
    i,n,x:integer;
    cs: string;
    a:array [1..30] of string;
begin
  assign(t,'nevsor.txt');
  reset(t);
  i:=0;
  while not eof(t) do
  begin
    inc(i);
    readln(t,a[i]);
    writeln(a[i]);
  end;
  n:=i;
  //randomize;
  for i:=1 to n do
  begin
    x:=1+random(n);
    cs:= a[i];
    a[i]:= a[x];
    a[x]:= cs;
  end;
  writeln('A labor vedesi sorrend: ');
  for i:=1 to n do
    writeln(i:2,'. ',a[i]);
  readln;
end.
feleles_hianyzok_nelkul.pas
program feleles_hianyzok_nelkul;
var t:text;
    i,j,k,n,m,p,x:integer;
    cs: string;
    a,h,o:array [1..30] of string;
begin
  writeln('Teljes nevsor:');
  assign(t,'nevsor.txt');
  reset(t);
  i:=0;
  while not eof(t) do
  begin
    inc(i);
    readln(t,a[i]);
    writeln(i:2,'. ',a[i]);
  end;
  n:=i;
  assign(t,'hianyzok.txt');
  reset(t);
  i:=0;
  while not eof(t) do
  begin
    inc(i);
    readln(t,h[i]);
    //writeln(i:2,'. ',h[i]);
  end;
  m:=i;
  for i:=1 to m-1 do
    for j:=i+1 to m do
      if a[i]>a[j] then
      begin
        cs:=a[i];
        a[i]:=a[j];
        a[j]:=cs;
      end;
  writeln;
  writeln('Hianyzok nevsora:');
  for i:=1 to m do
    writeln(i:2,'. ',h[i]);
  writeln;
  writeln('Oran jelenlevok nevsora:');
  k:=0;
  for i:=1 to n do
  begin  //Keressuk azt az a[i]-t, ami nincs a h tombben.
    j:=1;
    while (j<=m)and(a[i]<>h[j])do
      inc(j);
    if j>m then
    begin
      k:=k+1;
      o[k]:=a[i];
    end;
  end;
  p:=k;//p-az o[] tomb elemeinek szama
  for i:=1 to p do
    writeln(i:2,'. ',o[i]);
  randomize;
  x:=1+random(p);
  writeln;
  writeln('Felelo: ',o[x]);
  readln;
end.
nevsor.txt
Bado Edina
Baksa Adrien
Barta Erik
Bagu Cintia-Erzsebet
Buda Krisztian
Homoki Janos
Hofman Attila
Demjen Dominika
Ilosvay Aron
Kerek Vanessza
Kovacs Petra-Mariann
Kovacs Julia
Mirosnicsenko Beatrix
Orosz Evelin
Orosz Zsolt
Papp Imre
Penzes Zsolt
Palinszki Alexandra
Szirmai Stefania
Szolnoki Gyula
Toth Ferenc
Himinec Kalman-Laszlo
Juhasz Tamas
hianyzok.txt
Hofman Attila
Kovacs Julia
Mirosnicsenko Beatrix
Orosz Evelin
Orosz Zsolt
Toth Ferenc
Juhasz Tamas
Baksa Adrien
Demjen Dominika
Kerek Vanessza
Penzes Zsolt
Palinszki Alexandra
Szirmai Stefania