Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Tworzenie plików tekstwowych

Ostatnio zmodyfikowano 2014-02-08 23:15
Autor Wiadomość
Dawidsoni
Temat założony przez niniejszego użytkownika
Tworzenie plików tekstwowych
» 2010-09-03 19:52:10
Witam. Dziś chciałbym się dowiedzieć, jak można tworzyć/kopiować pliki tekstowe. Z góry dzięki:) 
P-21672
kamillo121
» 2010-09-03 20:05:07
Witaj, myślę, że z powodzeniem możesz zerknąć na stary kurs serwisu ddt.pl http://kursy.ddt.pl/?LessonId=110, jest tam opisana obsługa plików, zapis odczyt(tylko nie pisz tam żadnych wiadomości ;) ).
P-21673
ison
» 2010-09-03 20:08:25
tworzenie pliku tekstowego i zapis:
C/C++
#include <iostream>
#include <fstream>

using namespace std;

void Zapisz( string sciezka, string zawartosc )
{
    ofstream out( sciezka.c_str() );
    out << zawartosc;
    out.close();
}
tym sposobem jeśli nie będzie w danym katalogu już istniejącego pliku o tej samej nazwie to takowy się utworzy, w innym wypadku zastąpi

do kopiowania możesz użyć funkcji z cmd
C/C++
system( "copy X Y" ); //x to plik do skopiowania, y to sciezka gdzie ma byc wklejony skopiowany plik
P-21674
DejaVu
» 2010-09-03 20:16:08
Funkcja system to zło wcielone. Nie używaj jej.
P-21675
kamillo121
» 2010-09-03 20:19:44
Zawsze można wczytać plik i potem zapisać w nowej ścieżce, prawie na to samo wyjdzie.
P-21676
malan
» 2010-09-03 21:20:19
Do kopiowania plików możesz użyć CopyFile (windows.h), jeśli korzystasz z Windowsa. Jeżeli nie będzie Ci to odpowiadać, to jak powiedział kolega wyżej:
  • Otwórz plik, który chcesz skopiować,
  • Pobierz z niego dane,
  • Stwórz nowy plik,
  • Zapisz do nowego pliku dane, które pobrałeś,
  • Usuń stary plik.
P-21683
Dawidsoni
Temat założony przez niniejszego użytkownika
» 2010-09-04 10:24:35
Mógłby ktoś podać jakiś praktyczny przykład tworzenia plików (Nie definicje) ?
P-21701
malan
» 2010-09-04 11:19:11
Tworzenie pliku:
C/C++
#include <iostream>
#include <fstream>

const int MAX_NAME = 256;

void clear( char *, const int );
// Funkcja zajmująca się stworzeniem pliku
bool createFile( const char * );

int main()
{
    char * fileName = 0;
   
    fileName = new char[ MAX_NAME ];
    clear( fileName, MAX_NAME );
   
    // Pobieramy nazwę pliku, który chcemy utworzyć
    std::cout << "Podaj nazwe pliku: ";
    std::cin.getline( fileName, MAX_NAME );
   
    if( createFile( fileName ) )
         std::cout << "Utworzono plik: " << fileName;
    else
         std::cout << "Wystapil blad podczas tworzenia pliku " << fileName;
   
    delete[] fileName;
   
    std::cin.sync();
    std::cin.get();
    return 0;
};

bool createFile( const char * fName )
{
    std::fstream newFile;
    // 'std::ios::out' spowoduje, że plik się utworzy jeśli nie istnieje
    newFile.open( fName, std::ios::out );
    if( newFile.good() )
    {
        newFile.close();
        return true;
    } else
    {
        return false;
    }
};

void clear( char * _array, const int aSize )
{
    for( int i = 0; i < aSize; i++ ) _array[ i ] = '\0';
   
    return;
};

Kopiowanie pliku:
C/C++
#include <iostream>
#include <fstream>
#include <string>
#include <windows.h> // DeleteFile

const int MAX_NAME = 256;

void clear( char *, const int );
// Funkcja zajmująca się skopiowaniem pliku
bool copyFile( const char *, const char * );

int main()
{
    char * fileName = 0;
    char * newDirectory = 0;
   
    fileName = new char[ MAX_NAME ];
    clear( fileName, MAX_NAME );
    newDirectory = new char[ MAX_NAME ];
    clear( newDirectory, MAX_NAME );
   
    // Pobieramy nazwę pliku, który chcemy skopiować
    std::cout << "Pliku do skopiowania: ";
    std::cin.getline( fileName, MAX_NAME );
   
    std::cout << "Nowa ścieżka pliku: ";
    std::cin.getline( newDirectory, MAX_NAME );
   
    if( copyFile( fileName, newDirectory ) )
         std::cout << "Skopiowano plik: " << fileName;
    else
         std::cout << "Wystapil blad podczas kopiowania pliku " << fileName;
   
    delete[] newDirectory;
    delete[] fileName;
   
    std::cin.sync();
    std::cin.get();
    return 0;
};

bool copyFile( const char * fName, const char * fNewDir )
{
    std::fstream oldFile, newFile;
    std::string buffer, fileDate;
   
    oldFile.open( fName, std::ios::in );
    if( !oldFile.good() ) return false;
   
    // Pobieranie dnaych ze starego pliku
    while( !oldFile.eof() )
    {
        getline( oldFile, buffer );
        fileDate += buffer + "\n";
    }
   
    oldFile.close();
   
    newFile.open( fNewDir, std::ios::out );
    if( !newFile.good() ) return false;
   
    newFile << fileDate;
    newFile.close();
   
    return( DeleteFile( fName ) );
};

void clear( char * _array, const int aSize )
{
    for( int i = 0; i < aSize; i++ ) _array[ i ] = '\0';
   
    return;
};

@Dawidsoni: Akurat w tym przypadku raczej lepiej jest użyć std::string zamiast tablicy typu char, ale pobaw się sam :p.
P-21705
« 1 » 2
  Strona 1 z 2 Następna strona