🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.asm
9 messages
9 total messages Started by "Remek" Mon, 26 Sep 2011 01:41
=?iso-8859-2?Q?Lista_plików_w_katalogu?
#2454
Author: "Remek"
Date: Mon, 26 Sep 2011 01:41
40 lines
1429 bytes
Witam

Walcz� z przerwami nad programem listuj�cym pliki w katalogu. Jedna z wersji
wykorzystuje DOS-owe polecemie dir. Wykonanie polecenia daje:

-----------------------------------------------------------------
 Wolumin w stacji E nie ma etykiety.
 Numer seryjny woluminu: 2B60-0E0C

 Katalog:
E:\ArchRW4\Asembler\Asembler32\Masm32\CwiczMasm\Format\Listing\XP\2

2010-10-28  21:37    <DIR>          .
2010-10-28  21:37    <DIR>          ..
2011-09-26  01:29                16 lista.bat
2009-12-20  05:58            10�958 Listing.asm
2008-09-23  12:46               520 Listing.bat
2009-12-20  05:58             5�632 Listing.exe
2007-12-01  16:38                45 Listing.rc
2009-12-20  05:58               860 Listing.res
--------------------------------------------------------------------

Aby otrzyma� posta�:

Listing.asm       10   kB
Listing.bat        0,5 kB
Listing.exe        5   kB

musz� plik dodatkowo obrabia� w napisanym programie. Efekty s� r�ne w
zale�no�ci od ilo�ci podkatalog�w (kt�re usuwam) i od tego czy polecenie
jest realizowane w Win 98, czy WIn XP (r�na ilo�� spacji).

Druga wersja bazuje na tutorialu Iczeliona strona 31/"Testowanie kontrolki
widoku listy". W tej wersji jednak uzyskuj� tylko nazw� pliku bez jego
rozmiaru. Je�li kto� wie jak to zrobi� prosz� o podpowied�. Ewentualnie mog�
podes�a� wspomniana stron� tutoriala.

Remek


Re: Lista =?ISO-8859-2?Q?plików_w_katalogu?
#2455
Author: "Bogdan (bogdro)
Date: Mon, 26 Sep 2011 18:19
53 lines
2284 bytes
W dniu 26.09.2011 01:41, Remek pisze:
> Witam
>
> Walcz� z przerwami nad programem listuj�cym pliki w katalogu. Jedna z wersji
> wykorzystuje DOS-owe polecemie dir. Wykonanie polecenia daje:
>
> -----------------------------------------------------------------
>  Wolumin w stacji E nie ma etykiety.
>  Numer seryjny woluminu: 2B60-0E0C
>
>  Katalog:
> E:\ArchRW4\Asembler\Asembler32\Masm32\CwiczMasm\Format\Listing\XP\2
>
> 2010-10-28  21:37    <DIR>          .
> 2010-10-28  21:37    <DIR>          ..
> 2011-09-26  01:29                16 lista.bat
> 2009-12-20  05:58            10�958 Listing.asm
> 2008-09-23  12:46               520 Listing.bat
> 2009-12-20  05:58             5�632 Listing.exe
> 2007-12-01  16:38                45 Listing.rc
> 2009-12-20  05:58               860 Listing.res
> --------------------------------------------------------------------
>
> Aby otrzyma� posta�:
>
> Listing.asm       10   kB
> Listing.bat        0,5 kB
> Listing.exe        5   kB
>
> musz� plik dodatkowo obrabia� w napisanym programie. Efekty s� r�ne w
> zale�no�ci od ilo�ci podkatalog�w (kt�re usuwam) i od tego czy polecenie
> jest realizowane w Win 98, czy WIn XP (r�na ilo�� spacji).

 Opr�cz tego, uruchamianie dodatkowego programu i przegl�danie jego
wynik�w raczej nie b�dzie zbyt wydajne.

> Druga wersja bazuje na tutorialu Iczeliona strona 31/"Testowanie kontrolki
> widoku listy". W tej wersji jednak uzyskuj� tylko nazw� pliku bez jego
> rozmiaru. Je�li kto� wie jak to zrobi� prosz� o podpowied�. Ewentualnie mog�
> podes�a� wspomniana stron� tutoriala.

 Zobacz, jak dzia�a ta lista. Czytaj r�cznie list� plik�w w katalogu -
raz, �e to b�dzie szybsze, to jeszcze zwykle od razu masz wi�cej
informacji ni� tylko nazwa pliku. W C s� od tego funkcje opendir,
readdir i closedir, nie wiem jak w win32 API (ale mog� spr�bowa� znale��).
 Co do strony tutoriala, to lepiej podaj link.

--
Pozdrawiam/Regards - Bogdan                     (GNU/Linux & FreeDOS)
Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
www.Xiph.org   www.TorProject.org   Soft (EN): miniurl.pl/bogdro-soft

=?iso-8859-2?Q?Re:_Lista_plików_w_katalogu?
#2456
Author: "Remek"
Date: Mon, 26 Sep 2011 18:43
11 lines
353 bytes
U�ytkownik "Bogdan (bogdro)" napisa�:

> Co do strony tutoriala, to lepiej podaj link.

W tym s�k, �e nie mog� jej znale��. Googel nie znajduje orygina�u i te� nie
znajduje polskiego t�umaczenia in�yniera Wa�aszka. Wygl�da na to, �e strony
zosta�y usuni�te, albo inaczej si� nazywaj�. Popr�buj� jeszcze.

Remek


Re: Lista =?ISO-8859-2?Q?plików_w_katalogu?
#2457
Author: Michoo
Date: Mon, 26 Sep 2011 19:54
11 lines
340 bytes
W dniu 26.09.2011 01:41, Remek pisze:
> W tej wersji jednak uzyskuj� tylko nazw� pliku bez jego
> rozmiaru. Je�li kto� wie jak to zrobi� prosz� o podpowied�. Ewentualnie mog�
> podes�a� wspomniana stron� tutoriala.
FindFirstFile,FindNextFile,GetFileType,GetFileSize  i sprintf do
formatowania

--
Pozdrawiam
Michoo

=?iso-8859-2?Q?Re:_Lista_plików_w_katalogu?
#2458
Author: "Remek"
Date: Wed, 05 Oct 2011 01:32
13 lines
371 bytes
U�ytkownik "Michoo" napisa�:

> FindFirstFile,FindNextFile,GetFileType,GetFileSize  i sprintf do
> formatowania

Kt�ra z tych funkcji listuje pliki z podaniem rozmiaru? Z tego co czyta�em
te funkcje Windows nie podaj� atrybut�w. Nie s�dz�, aby rozmiar by�
atrybutem, ale te w�a�nie fubkcje s� w moim programie i rozmiar�w nie
podaj�.

Remek


Re: Lista =?ISO-8859-2?Q?plików_w_katalogu?
#2459
Author: Michoo
Date: Wed, 05 Oct 2011 10:57
31 lines
755 bytes
W dniu 05.10.2011 01:32, Remek pisze:
> U�ytkownik "Michoo" napisa�:
>
>> FindFirstFile,FindNextFile,GetFileType,GetFileSize  i sprintf do
>> formatowania
>
> Kt�ra z tych funkcji listuje pliki z podaniem rozmiaru?
�adna nie listuje. Listowa� musisz sobie sam.


> Z tego co czyta�em
> te funkcje Windows nie podaj� atrybut�w. Nie s�dz�, aby rozmiar by�
> atrybutem, ale te w�a�nie fubkcje s� w moim programie i rozmiar�w nie
> podaj�.
GetFileSize poda�em dla zmy�ki.

Algorytm jest mniej wi�cej taki:
list(�cie�ka):
  FindFirst(�cie�ka)
  while next=FindNext()
   if(GetType(next)==dir)
     list(next)
   else
    size=GetSize
    sprintf(buf,"%s %d",next,size);
    MessageBox(buf)

--
Pozdrawiam
Michoo

=?iso-8859-2?Q?Re:_Lista_plików_w_katalogu?
#2460
Author: "Remek"
Date: Wed, 05 Oct 2011 20:52
14 lines
385 bytes
U�ytkownik "Bogdan (bogdro)" napisa�:

> Co do strony tutoriala, to lepiej podaj link.

Dzi�ki uprzejmo�ci autora t�umaczenia link si� odnalaz�:

http://edu.i-lo.tarnow.pl/inf/prg/002_winasm/0032.php

Z tego co zauwa�y�em tutorial zosta� rozbudowany. Kontrolka pokazuje rozmiar
pliku. Problem w tym jak to co si� pokazuje w oknie zapisa� do pliku txt.

Remek


Re: Lista =?ISO-8859-2?Q?plików_w_katalogu?
#2461
Author: "Bogdan (bogdro)
Date: Thu, 06 Oct 2011 17:46
28 lines
1324 bytes
W dniu 05.10.2011 20:52, Remek pisze:
> U�ytkownik "Bogdan (bogdro)" napisa�:
>
>> Co do strony tutoriala, to lepiej podaj link.
>
> Dzi�ki uprzejmo�ci autora t�umaczenia link si� odnalaz�:
>
> http://edu.i-lo.tarnow.pl/inf/prg/002_winasm/0032.php
>
> Z tego co zauwa�y�em tutorial zosta� rozbudowany. Kontrolka pokazuje rozmiar
> pliku. Problem w tym jak to co si� pokazuje w oknie zapisa� do pliku txt.

 Do obs�ugi plik�w masz CreateFile i WriteFile lub FileWrite (nie
pami�tam dok�adnie).
 List� plik�w masz, wed�ug kodu na stronie (i podpowiedzi koleg�w),
dzi�ki FindFirstFile+FindNextFile. Te funkcje zwracaj� struktury typu
WIN32_FIND_DATA. Ze struktur tych procedura ShowFileInfo w kodzie na
stronie wyci�ga [edi].cFileName i [edi].nFileSizeLow.
 Wystarczy wi�c te pola zapisywa� do pliku. Przerabianie DWORDa na
napis na pewno ju� masz (a je�li nie, to mo�esz u�y� wsprintf, jak na
tej stronie), wi�c wystarczy przerobi� i bufor wyj�ciowy zapisa� do pliku.

--
Pozdrawiam/Regards - Bogdan                     (GNU/Linux & FreeDOS)
Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
www.Xiph.org   www.TorProject.org   Soft (EN): miniurl.pl/bogdro-soft

=?iso-8859-2?Q?Re:_Lista_plików_w_katalogu?
#2462
Author: "Remek"
Date: Fri, 07 Oct 2011 00:48
47 lines
1095 bytes
U�ytkownik "Bogdan (bogdro)" napisa�:

> procedura ShowFileInfo w kodzie na stronie wyci�ga [edi].cFileName i
[edi].nFileSizeLow.

Masz na my�li to?

======================================
ShowFileInfo PROC USES edi row:DWORD, lpFind:DWORD

LOCAL lvi:        LV_ITEM
LOCAL buffer[20]: BYTE

    mov edi, lpFind

ASSUME edi: PTR WIN32_FIND_DATA

     mov lvi.imask, LVIF_TEXT + LVIF_PARAM
     push row
     pop lvi.iItem
     mov lvi.iSubItem, 0
     lea eax, [edi].cFileName
     mov lvi.pszText, eax
     push row
     pop lvi.lParam
    invoke SendMessage, hList, LVM_INSERTITEM, 0, addr lvi
     mov lvi.imask, LVIF_TEXT
     inc lvi.iSubItem
    invoke wsprintf, addr buffer, addr template, [edi].nFileSizeLow
     lea eax, buffer
     mov lvi.pszText, eax
    invoke SendMessage, hList, LVM_SETITEM, 0, addr lvi

ASSUME edi: NOTHING

    ret

ShowFileInfo endp

===========================================================

Dzi�ki za podpowied�. Dzi�ki niej rozgryz�em t� strukture i program dzia�a.
Jeszcze tylko optymalizacja i procedury formatowania tekstu.

Remek


Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads