Am dat de problema urmatoare si nu i-am gasit rezolvare inca.
Fac un program pentru facultate in C# si programul meu trebuie sa faca urmatoarele:
1. Sa citeasca niste caractere dintr-un fisier .txt
2. Sa le codeze printr-un algoritm de comprimare Shannon - Fano (neimportant)
3. Sa le scrie codurile intr-un fisier
Exemplu: a - 0001 b - 001 c - 10 d - 11 e - 01 (caracterul - codul de scris in fisier)
In fisierul comprimat pe langa alte chestii vin si caracterele comprimate.
In fisierul initial avand spre exemplu: abcdecdecd
In fisierul comprimat o sa fie sirul de biti (pe care cu greu i-am pus):
"0001-001-1 0- 11- 01- 10 -1 1- 01 - 10 - 11-0"
a - b - c - d - e - c - d - e - c - d -
si o completare de 1 bit de 0 sa fie octeti intregi
adica octetii: "00010011 01101101 10110110" valoare binara
sau "19 109 182" valoare zecimala
Pana acum a fost partea de comprimare si functioneaza perfect.
Acum vine partea de decomprimare care face urmatoarele:
1. Copiaza din fisierul comprimat cei 3 octeti "19 109 182" si totul merge bine pana la 182 care este mai mare decat 127 si nu mai face parte din tabela de caractere ASCII ci face parte din tabela de caractere Extended ASCII si deci e problema la citire pentru ca in loc de valoarea 182 in variabila in care pun ce citesc din fisier imi pune valoarea 65533.
Asta e marea problema: Cum citesc valoarea 182 din fisier si sa pun intr-un int valoarea 182 nu alta valoare.
Am incercat cu toate tipurile de Encoding care le-am gasit. Folosesc pentru citire un StreamReader si instructiunea de citire este:
Buffer = f.Read();
f fiind handler-ul stream-ului de citire.
Daca da careva pe aici si stie rezolvarea il rog sa ma ajute.
Tutoriale "cum sa" scrise de Raducan. "Capacitatile se dezvolta si se arata din ce in ce mai mult cu fiecare sarcina noua primita." Baltasar Gracian
Se afișează postările cu eticheta programare. Afișați toate postările
Se afișează postările cu eticheta programare. Afișați toate postările
luni, 8 noiembrie 2010
C#: Citire caracter cu codul ASCII mai mare de 127 din fisier
Cuvinte cheie:
65533
,
ASCII
,
C#
,
citire din fisier
,
cod ASCII
,
comprimare
,
Extended ASCII
,
peste 127
,
programare
,
Shannon Fano
joi, 22 aprilie 2010
Cum se incepe un program scris in limbaj de asamblare? (pentru avansati)
Limbajul de asamblare este un limbaj de nivel foarte jos.
Practic la acest nivel controlezi registrele vizibile ale procesorului.
Un program in limbaj de asamblare se incepe si trebuie sa contina cel putin urmatoarele linii de cod:
.model small
.stack ;fara stack o sa primesti un warning
.data ;aici incepe segmentul de date
;aici iti definesti variabilele
.code ;incepe segmentul de cod
start: ;eticheta inceputului de program
; .
; .
; .
; .
; .
; .
mov ah,4Ch ; sfarsitul programului
int 21h
end start
Practic la acest nivel controlezi registrele vizibile ale procesorului.
Un program in limbaj de asamblare se incepe si trebuie sa contina cel putin urmatoarele linii de cod:
.model small
.stack ;fara stack o sa primesti un warning
.data ;aici incepe segmentul de date
;aici iti definesti variabilele
.code ;incepe segmentul de cod
start: ;eticheta inceputului de program
; .
; .
; .
; .
; .
; .
mov ah,4Ch ; sfarsitul programului
int 21h
end start
Cuvinte cheie:
asamblare
,
cod
,
cum sa
,
cum se
,
limbaje de programare
,
nivel de programare
,
procesor
,
programare
,
registrii
vineri, 15 mai 2009
Vrei sa iti programezi calculatorul sa se stinga?
Vrei sa te pui la un film pe calculator si vrei sa se stinga dupa ce se termina filmul? Si nu sti cum? Ai ajuns unde trebuie.
Ca sa iti programezi calculatorul sa se stinga dupa un anumit timp e floare la ureche.
Pentru a face acest lucru urmeaza urmatorii pasi(valabil pentru sistemele de operare Windows):
1. Dai click pe Start (jos in coltul din stanga)
2. Dai click pe Run... (prin meniu ala care iti apare)
3. Ti se deschide o fereastra mica
4. In casuta aia scri urmatoarele: "shutdown -s -f -t 3600" (fara ghilimele)
5. Daca scri ce am zis la punctul 4 o sa ti se stinga calculatorul in 3600 de secunde adica o ora. Ca sa se stinga intr-un timp diferit poti sa scri cate secunde vrei, de exemplu: 1800-jumatate de ora, 3600-o ora, 7200-doua ore ... si tot asa
6. Felicitari
7. Acest proces nu se poate opri decat daca mai faci odata pasii de la 1 la 4 si la 4, in loc de ce scrie acolo, scri: "shutdown -a".
Ca sa iti programezi calculatorul sa se stinga dupa un anumit timp e floare la ureche.
Pentru a face acest lucru urmeaza urmatorii pasi(valabil pentru sistemele de operare Windows):
1. Dai click pe Start (jos in coltul din stanga)
2. Dai click pe Run... (prin meniu ala care iti apare)
3. Ti se deschide o fereastra mica
4. In casuta aia scri urmatoarele: "shutdown -s -f -t 3600" (fara ghilimele)
5. Daca scri ce am zis la punctul 4 o sa ti se stinga calculatorul in 3600 de secunde adica o ora. Ca sa se stinga intr-un timp diferit poti sa scri cate secunde vrei, de exemplu: 1800-jumatate de ora, 3600-o ora, 7200-doua ore ... si tot asa
6. Felicitari
7. Acest proces nu se poate opri decat daca mai faci odata pasii de la 1 la 4 si la 4, in loc de ce scrie acolo, scri: "shutdown -a".
Cuvinte cheie:
calculator
,
film
,
programare
,
run
,
start
,
stins
Abonați-vă la:
Postări
(
Atom
)