Skocz do zawartości

K3310pH

Stały użytkownik
  • Postów

    80
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez K3310pH

  1. 6401234 | | | | | |*1 | |*10 | *100 prefiks = 6*100 + 4*10 + 0 = 640 = dialog
  2. powiem ci tylko tyle wklepany numer telefonu nie jest dla komputera cyfra tylko ciagiem znakow czyli string '1234' jest czyms zupelnie innym niz integer 1234 kluczowa sprawa jest tutaj ord(ciag[x]) - 48 to wyciaga ze stringa konkretna cyfre w tym przypadku ('1234') ciag[1] = '1' {tutaj jeden jako znak}ord ( ciag[1] ) - 48 {a tutaj jako liczba} nacisnij alt i wstukaj sobie z klawiatury numerycznej numerki ALT+048 az do ALT+057 :)
  3. najbardziej zakrecony opis prostej czynnosci jaki widzialem, moglbys wykladac u mnie na wydziale :P jezeli dobrze zrozumialem chcesz policzyc dlugosc stringai zwrocic ja do CX jedno rozwiazanie: lea dx, liczbastrxor cx, cx ; cx = 0petla:cmp byte ptr [dx], '$'je okinc dxinc cxjmp petla a jesli z gory znasz dlugosc to mozna tez tak kombinowac liczbastr db '23847239', '$'liczba_len equ $ - liczbastr - 1mov cx, liczba_len nie pamietam jak to tbylo w 16 bitowych, moze bedziesz musial zamiast [dx] uzyc jakiegos ds:[si] albo przynajmniej ds:[dx] do adresowania..
  4. afaik 39 to nie spacja, ani w dziesietnym, ani w szesnastkowym spacja to 20h = 32d po drugie, pobaw sie int 16h tutaj mala dokumentacja http://www.arl.wustl.edu/~lockwood/class/c...tml#MARKER-9-45
  5. K3310pH

    Tablice

    mozna tez tak: <string.h>char *jest = strstr( gdzie_szukac, czego_szukac ); dla kilku wystapien poprostu iterowac podawac jako string do przeszukania zwrocony wskaznik + 1 i powtarzac dopoki jest != 0
  6. Atrybuty pliku zapisane w i-węźle można pobrać jedną z trzech funkcji systemowych: int stat(const char *file_name, struct stat *buf); int lstat(const char *file_name, struct stat *buf); int fstat(int filedes, struct stat *buf); gdzie: file_name - nazwa ścieżkowa pliku, filedes - deskryptor pliku, buf - wskaźnik do struktury stat, w której zostaną zapisane atrybuty pliku. Funkcje odczytują zawartość i-węzła wskazanego pliku i zapisują w buforze. Plik może być wskazany przez nazwę w funkcjach stat() i lstat() lub przez numer deskryptora otwartego pliku w funkcji fstat(). Proces nie musi posiadać żadnych uprawnień do pliku, ale musi posiadać prawo przeglądania wszystkich katalogów podanych w nazwie ścieżkowej pliku. Funkcja lstat() pozwala odczytać atrybuty dowiązań symbolicznych, podczas gdy stat() podąża za dowiązaniem i operuje na pliku wskazywanym. Funkcje zapisują informacje o pliku w strukturze stat zdefiniowanej następująco: struct stat { dev_t st_dev; - nazwa urządzenia, na którym plik jest zapisany ino_t st_ino; - numer i-węzła mode_t st_mode; - tryb pliku nlink_t st_nlink; - liczba dowiązań uid_t st_uid; - identyfikator właściciela UID gid_t st_gid; - identyfikator grupy GID dev_t st_rdev; - typ urządzenia dla plików specjalnych off_t st_size; - rozmiar pliku w bajtach unsigned long st_blksize; - zalecany rozmiar bloku dla operacji wejścia/wyjścia unsigned long st_blocks; - liczba zajmowanych bloków dyskowych time_t st_atime; - czas ostatniego dostępu do pliku time_t st_mtime; - czas ostatniej modyfikacji zawartości time_t st_ctime; - czas ostatniej zmiany atrybutów } Wartości atrybutów pliku ulegają zmianie w wyniku działania różnych funkcji systemowych, np. dopisanie danych do pliku powoduje zmianę rozmiaru i daty modyfikacji. Niektóre atrybuty można zmieniać wprost posługując się specjalnymi funkcjami systemowymi. Dotyczy to w szczególności identyfikatorów użytkowników i praw dostępu do pliku.
  7. wszystko fajnie, tylko jest maly problem ten fragment robi dokladnie to, o co ci chodzi, radze popatrzec po znakach formatujacych dla printf czy [f]scanf %d to wlasnie DECIMAL jezeli to mialoby byc ASCII to raczej %s inna sprawa jest %d i czytanie tego do double raczej %lf -> long float
  8. kiedys bylo cos takiego jak WINBGI, cos wlasnie jak graphics.h dla windows google -> winbgi i cos znajdziesz
  9. Po pierwsze, skoro w DOSie na przerwaniu 13h mozesz wyswietlic max 320x200x8bpp to nie wiem skad tam sie nagle bierze 320x240 :) Skoro wyswietla sie obraz 'do gory nogami' to znaczy sie ze rep movsd tego nie rozwiaze, bo potrzebujesz kopiowac obrazek linia po linii, kolejno wczytac pierwsza i zapisac jako ostatnia, wczytac druga zapisac jako przedostania itd itd Nie odpalalem programu i ten fragment sklecilem w 30s wiec jak nad nim posiedzisz to wymyslisz bardziej optymalne rozwiazanie, chodzilo mi o zobrazowanie, mianowicie: mov si, 320*200;rejestr indeksowy, wskaznik do danych w segmencie danychmov di,0;rejestr indeksowy wskaznik do danychsub si, 320 ; cofnij na ostatnia liniemov dl, 200; 200 linii do skopiowaniacopy_scanline:mov cx, 320/4rep movsdsub si, 640 ; cofnij na poczatek swojej( bo movsd zmienil wartosc ) i na poczatek poprzedniej liniidec dljne copy_scanline
  10. te instrukcje to SHL(mnozy przez potege 2) i SHR(dzieli przez potege 2) np 4 shl 2 = 16 co do fora to watpie, domyslnie jest 1, chyba ze mozna zmieniac w petli nie mam paskala pod reka co by sprawdzic, ale raczej watpie zeby sie dalo
  11. yyy, no do wysylania masz tak ladnie nazywajaca sie funkcje send :) proponuje zaopatrzyc sie w Winsock SDK albo przynajmniej helpa z niego: send()Description Send data on a connected socket. #include <winsock.h> int PASCAL FAR send ( SOCKET s, const char FAR * buf, int len, int flags );s A descriptor identifying a connected socket.buf A buffer containing the data to be transmitted.len The length of the data in buf.flags Specifies the way in which the call is made.to tylko skrocony opis, jak cos to PM albo GG to ci podesle tego helpa.. no a w masmie: invoke send, ConnectSocket, offset bufor, sizeof bufor, 0 co do wysylania z potwierdzeniem (jezeli dobrze rozumiem pytanie) to juz musisz sobie swoj mini protokol zaimplementowac, Winsock nie zrobi tego za ciebie..
  12. K3310pH

    Szyfrowanie

    no rzeczywiscie, zbyt skomplikowane to nie bedzie zacznij cos pisac i jak sie zgubisz to najlepiej PM albo gg, od zera programow nikt tutaj nie pisze :razz:
  13. No z windowsem xp to raczej duzo wspolnego nie ma. Daaaaawno nic nie pisalem w pascalu ale moze cos sie sprawdzi, mianowicie: type kontakt = record IP : string[dlugosc]; Nazwa : String[dlugosc]; end; Sprobuj cos takiego, sam typ String niebardzo pasuje do zapisu w pliku w ten sposob, nalezy wymusic mu jakas stala dlugosc/wielkosc.
  14. potrzebuje rozszerzyc cztery bity na osiem tak zeby kazdy bit zrodlowy zajmowal 2 sasiednie bity docelowe oczywiscie jak najbardziej optymalnie no i w asmie //edit w sumie w c tez moze byc, niewiele sie powinno roznic
  15. BOOL SetCursorPos( int X, // horizontal position int Y // vertical position );
  16. troche logiki sie tutaj wkrada otoz w tym warunku sprawdzane jest czy liczby w tabeli sa rozne od 189 zatem jezeli ktorakolwiek z liczb jest rowna 189 to warunek nie zostanie spelniony wiec petla zostaje ta sama, tylko w IFie obslugujesz przeciwne zdarzenie
  17. int i;for(i=0; i<9; i++) if ( pole[i] == 189 ) { //nalezy break; }
  18. A przykladowo tak: [php:1:26ce8894d1] type rekord = record a: integer; b: integer; end; var F: File; rekordy: array[0..10] of rekord; i: integer; begin for i:=0 to 10 do begin rekordy.a := 10 - i; rekordy.b := i; end; AssignFile(F, 'plik.dat'); Rewrite(F, sizeof(rekord)); BlockWrite(F, rekordy, 11); { 11 - ilosc rekordow ( 0 - 10 ) } CloseFile(F); [/php:1:26ce8894d1]
  19. kurde bardzo strzelam, ale sprobuj dodac na poczatek dyrektywy: {$N- E+} jest to dosyc dziwne, nakazuje aby kompilator uzywal emulacji koprocesora a nie instrukcji jednostki zmiennoprzecinkowej.... mowa o dosowym staruszku borland pascal 7 i nizej
  20. K3310pH

    Sleep() w C++

    a jak dla DOSa to delay( ... )
  21. [php:1:fc40c429bb] n = 10 for (int i=0; i>n; i++) ..... [/php:1:fc40c429bb] yyy no chyba juz na samym poczatku i < n a zatem for w ogole sie nie wykona...
  22. [php:1:751b6c01cb] n = 10 for (int i=0; i>n; i++) ..... [/php:1:751b6c01cb] yyy no chyba juz na samym poczatku i < n a zatem for w ogole sie nie wykona...
  23. wszedzie podajesz za parametr dlugosc tablicy n, a tak niezabardzo to n jest wlasciwe, tzn nigdzie nie ma n=10 i funkcje wariuja to raz, A[10]=random(100) nie zapelni ci calej tablicy tylko jej jeden element, sprawa trzecia jak masz double A[10], to indeksujesz ja A[0]..[9] co dobrze robisz w funkcjach a to ustawianie A[10] jest odwolaniem do pamieci nie przydzielonej dla tabeli.
  24. no cos mi sie zdaje ze zamiast 2,5 wpisz 2.5 i bedzie smigac ( zamiast przecinka kropke )
  25. no w tym wypadku zinkrementowales wskaznik n razy to go trzeba teraz potraktowac: tab -= n;
×
×
  • Dodaj nową pozycję...