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:) |
|
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 ;) ). |
|
ison |
» 2010-09-03 20:08:25 tworzenie pliku tekstowego i zapis: #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 |
|
DejaVu |
» 2010-09-03 20:16:08 Funkcja system to zło wcielone. Nie używaj jej. |
|
kamillo121 |
» 2010-09-03 20:19:44 Zawsze można wczytać plik i potem zapisać w nowej ścieżce, prawie na to samo wyjdzie. |
|
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: |
|
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) ? |
|
malan |
» 2010-09-04 11:19:11 Tworzenie pliku:
#include <iostream> #include <fstream>
const int MAX_NAME = 256;
void clear( char *, const int );
bool createFile( const char * );
int main() { char * fileName = 0; fileName = new char[ MAX_NAME ]; clear( fileName, MAX_NAME ); 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; 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:
#include <iostream> #include <fstream> #include <string> #include <windows.h>
const int MAX_NAME = 256;
void clear( char *, const int );
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 ); 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; 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. |
|
« 1 » 2 |