mam jedo małe pytanko:
Jak wczytać pojedyńczy bit z pliku?
W jakiej zmiennej mozna przechowywac pojedynczy bit?
I to na tyle.podro

- Rejestracja:około 21 lat
- Ostatnio:około 4 lata
- Lokalizacja:Kraków
var F: File;
c:Char;
i: Integer;
begin
assignFile(F,'NazaPliku');
try
while not eof(F) do
for i:=1 to ktory_bit do //sczytujesz bity, dopuki wskaźnik nie ustawi się na Twoim szykanym bicie;
Read(F,c);
showmessage(c); // tu Ci wyświetla jeśli dojdzie do tego bitu.
finally
clocefile(F);
end;
end;
mniej więcej to tyle. Można jeszcze inaczej, ale sam już do tego dojdziesz :)
- Rejestracja:ponad 22 lata
- Ostatnio:około 15 lat
- Postów:731
Bit <> Bajt
Bajt to 8 bitów, więc aby odczytac bity danego bajta musisz najpierw odczytać ten bajt (np. tak jak podał endrique) a nastepnie rozbić go na bity. http://4programmers.net/Forum/viewtopic.php?id=37048&post=61527#61527

- Rejestracja:ponad 21 lat
- Ostatnio:ponad 2 lata
- Postów:317
Najprosciej chyba tak:
function dajbit(b,ktory:byte):boolean;
begin result:=false;
case ktory of
0:result:=(b and 1)<>0;
1:result:=(b and 2)<>0;
2:result:=(b and 4)<>0;
3:result:=(b and 8)<>0;
4:result:=(b and 16)<>0;
5:result:=(b and 32)<>0;
6:result:=(b and 64)<>0;
7:result:=(b and 128)<>0;
end;
end;
ta funkcja oczywiscie zwraca true jesli bit 'ktory' w bajcie b jest 1 a false jesli jest on zerem.

- Rejestracja:ponad 22 lata
- Ostatnio:ponad 9 lat
Ale co Ty chcesz wyciągać ?.. - zobacz na plik tekstowy - wyobraź sobie go jako ciąg bajtów..
B B B B B B
B - bajt..
A każdy bajt składa się z ośmiu bitów - możesz co najwyżej odczytać 8-mio bitowe kombinacje bajta - odczytać bajt i sprawdzić w tablicy ASCII jego kod w zapisie dwójkowym.

- Rejestracja:około 22 lata
- Ostatnio:ponad 15 lat
Pisze gre, napisałem już prawie wszystkie funkcje importujace mapkę q3 zostało mi tylko wczytanie list PVS no i troche mi sie spie.......o.
Mam podaną liczbę klastrów i liczbe bitów w klustrze.
Jak komuś pomoż to mam kawałek kodu w C++
struct tBSPVisData
{
int numOfClusters;
int bytesPerCluster;
byte *pBitsets;
};
fread(&(m_clusters.numOfClusters), 1, sizeof(int), fp);
fread(&(m_clusters.bytesPerCluster), 1, sizeof(int), fp);
int size = m_clusters.numOfClusters * m_clusters.bytesPerCluster;
m_clusters.pBitsets = new byte [size];
fread(m_clusters.pBitsets, 1, sizeof(byte) * size, fp);
no i to na tyle

- Rejestracja:ponad 21 lat
- Ostatnio:około 17 lat
Moze to Ci pomoze.
Type
tBSPVisData = record
numOfClusters: Integer;
bytesPerCluster: Integer;
pBitsets: ^Byte;
end;
var
Plik: file;
m_clusters: tBSPVisData;
size: Integer;
begin
AssignFile(Plik, 'nazwa');
Reset(Plik, 1);
BlockRead(plik, m_clusters.numOfClusters, sizeof(Integer));
BlockRead(plik, m_clusters.bytesPerCluster, sizeof(Integer));
size := m_clusters.bytesPerCluster * m_clusters.numOfClusters;
GetMem(m_clusters.pBitsets, size);
BlockRead(plik, m_clusters.pBitsets^, size);
CloseFile(Plik);
end;
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.