Polski Serwis Naukowy - OnLine od 1999 roku
RSS
Środa, 23 maja 2012
Leontyna, Jan, Iwona, Symeon
 Światowy Dzień Żółwia
 1911: została otwarta Nowojorska Biblioteka Publiczna
 2006: pojawił się system operacyjny Microsoft Windows Vista w wersji Beta 2
Nowe publikacje
Post dodany: |23 Paź 2005|, 2005 21:09
Data rejestracji: 23 Paź 2005 postów: 8
witajcie...
Mam taki problem:
Moim zadaniem jest napisanie programu szyfrujacego, a miedzy innymi odzwierciedlenia maszyny szyfrujacej zwanej Enigma.
Jako taki kod szyfrujacy tekst jawny w szyfrograf juz mam i dziala poprawnie.
Problem tkwi w tym, ze nie wiem jak mam (bo takie jest moje zalozenie) plik tekstowy wczytac do tablicy znakow, po to by zaszyfrowac przepuszczajac te tablice przez napisany juz kod i zapisac do pliku tekstowego.
Jesli malo zrozumiale jest to co napisalem to jeszcze raz sprobuje:
plik -plik.txt z ktorego chce pobrac tekst
tab[] -tablica znakow typu char, w ktorej miesci sie tekst z pliku.
tab1[] -zaszyfrowana tablica typu char
szyfr -szyfrograf.txt
kod -algorytm szyfrujacy, ktory juz stworzylem
plik --> tab[] --> kod --> tab1[] --> szyfr
jak to zrobic?:( bo ja juz trace glowe....
Post dodany: |23 Paź 2005|, 2005 21:34
Data rejestracji: 19 Lut 2005 postów: 1343
A w jakim języku chcesz to pisać?
W PRACY - weekend

Profil PW
»więcej
Opis: nowy tu jestem ;)
Wiek: 30 Pomógł: 11 razy
Post dodany: |23 Paź 2005|, 2005 22:02
Data rejestracji: 23 Paź 2005 postów: 8
aplikacje mam napisac w WinApiI32, ale kod i funkcje szyfrujaca w c++...
Post dodany: |23 Paź 2005|, 2005 22:55
Data rejestracji: 19 Lut 2005 postów: 1343
Jeżeli nie chcesz się bawić w dodawanie plików do resuorce`ów i bawić uchwytami(jak na WinApi przystało), to najprościej jest użyć interfejsu dostępnego z biblioteki
<stdio.h>
napisałem Ci poniżej odpowiedni przykład.
#include <stdio.h>
int szyfruj(char *szyfr){
File * fDes;
char *buff="pelna_sciezka_do_pliku";
long dlugoscPliku;
fDes = fopen(buff,"r+");
fseek(fDes,0,2);
dlugoscPliku = ftell(fDes);
szyfr = new char[++dlugoscPliku]; // o ile piszesz w C++ //XXX
if(szyfr != null){
fgets(szyfr,dlugoscPliku,fDes);
/*
Tutaj po usunięciu komentarza umieszczasz kod szyfrujący tablicę znaków "szyfr"
pamiętaj, że fgets dodaje na końcu znak końca stringa ('\0'), co może Ci
popsuć całą zabawę.
*/
rewind(fDes);
fputs(szyfr,fDes);
}else{return -1;};
fclose(fDes);
return 0;
};
W PRACY - weekend
Ostatnio zmieniony przez hWnd |24 Paź 2005|, 2005 22:39, w całości zmieniany 2 razy

Profil PW
»więcej
Opis: nowy tu jestem ;)
Wiek: 30 Pomógł: 11 razy
Post dodany: |24 Paź 2005|, 2005 21:45
Data rejestracji: 23 Paź 2005 postów: 8
dzieki za przyklad.gdyby nie on to bym z miejsca nie ruszyl  zapoznalem sie nieco z tymi funkcjami i mam obawy ze nie dziala to poprawnie. funkcja fseek() zwraca 0 albo jesli cos pojdzie nie tak, jakis blad to wartosc niezerowa.
| Cytat | | dlugoscPliku = fseek(fDes,0,2); |
takze ten zapis nadaje 0 zmiennej dlugoscPliku
czyli de facto warunek
| hWnd napisał/a | | if(szyfr != null) |
nie jest nigdy spelniony i nic w pliku sie nie dzieje.
chcialem jakos przejsc przez plik aby zliczyc ilosc znakow, na pierwszy rzut oka sadzilem ze fseek() da rade. no ale gdzies wyczytalem ze zwraca 0 i d*** blada...
masz moze jakis pomysl przyjacielu?
Post dodany: |24 Paź 2005|, 2005 22:42
Data rejestracji: 19 Lut 2005 postów: 1343
Pomyliłem fseek z lseek. Nie wiem czy ta ostatnia jest w windowskowych bibliotekach. Ale można posłużyć się ftell-em i będzie po kłopocie. Ostatni przykład zedytowałem więc looknij na nową wersję. Na upartego można jeszcze "poifować" niektóe rzeczy dla pełnej obsługi błędów.
P.S.
| lesny8 napisał/a |
d*** blada...
|
Brzydkie słowa kropkujemy.
W PRACY - weekend

Profil PW
»więcej
Opis: nowy tu jestem ;)
Wiek: 30 Pomógł: 11 razy
Post dodany: |24 Paź 2005|, 2005 23:32
Data rejestracji: 23 Paź 2005 postów: 8
Dzieki za kropki  niewiedzialem....
Dokladnie o to mi chodzilo, nigdzie nie moglem wyczytac o takiej funkcji ktora zwraca Polozenie wskaznika...
Jak juz zmieniasz to zmien tez to:
| hWnd napisał/a | | File * fDes; |
na "FILE *fDes;" no chyba ze tylko moja versja kompilatora w stdio.h ma FILE z duzych liter
i
| hWnd napisał/a | | if(szyfr != null){ |
na "if(szyfr != NULL){" czego juz jestem pewien ze ma byc duze
WIELKIE DZIĘKI for help
Bez twojej pomocy bym sobie nie poradzil... THX...
Post dodany: |25 Paź 2005|, 2005 21:02
Data rejestracji: 19 Lut 2005 postów: 1343
Spox, życzę SUCCESS`ów w programowaniu
P.S. Możesz wcisnąć przycisk "pomógł"
W PRACY - weekend

Profil PW
»więcej
Opis: nowy tu jestem ;)
Wiek: 30 Pomógł: 11 razy
Post dodany: |27 Paź 2005|, 2005 20:44
Data rejestracji: 23 Paź 2005 postów: 8
dzieki dzieki
gdzie mam kliknac? nie widze tego przycisku
juz widze  myslalem ze jest u gory w prawym rogu gdzies
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Wersja do druku
Dodaj temat do Ulubionych
|
Powered by
phpBB © 2000, 2002, 2005, 2007 phpBB Group
|