Administratorzy gnysek Opublikowano 31 Maja 2009 Administratorzy Udostępnij Opublikowano 31 Maja 2009 Brakuje mi funkcji buildbyte z 39dlla i chciałem sobie zrobić jej odpowiednik pod delphi, skróciłem do 4 liczb i kod gmla: GML return ( argument0 & 1 ) | ( ( argument1 & 1 ) << 1 ) | ( ( argument2 & 1 ) << 2 ) | ( ( argument3 & 1 ); przerobiłem na: function buildtype(b1:integer; b2:integer; b3:integer; b4:integer):integer; begin result := (( b1 and 1 ) or (( b2 and 1) shl 1) or (( b3 and 2) shl 1) or (( b4 and 1) shl 3)); end; ale to źle działa, bo zawsze wychodzi mi 2. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 31 Maja 2009 Udostępnij Opublikowano 31 Maja 2009 chodzi Ci o 4 bitowe? function buildtype(b1:integer; b2:integer; b3:integer; b4:integer):integer; begin result := integer(b1 or (b2 shl 8) or (b3 shl 16) or (b4 shl 24)); end; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Czerwca 2009 Autor Administratorzy Udostępnij Opublikowano 1 Czerwca 2009 Zwraca mi kurde jakieś errory. No nic, to nie jedyny błąd mojego programu, szczerze powiedziawszy akurat ta funkcja może nawet zwracać mi od razu zero i też będzie dobrze. Jeżeli będę miał dalej z tym problem zgłoszę się za kilka dni :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 1 Czerwca 2009 Udostępnij Opublikowano 1 Czerwca 2009 bo właściwie to powinno być to tak: function buildtype(b1:integer; b2:integer; b3:integer; b4:integer):cardinal; begin result := cardinal(b1 or (b2 shl 8) or (b3 shl 16) or (b4 shl 24)); end; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 2 Czerwca 2009 Autor Administratorzy Udostępnij Opublikowano 2 Czerwca 2009 Ok, wyglada na to, że jest dobrze. Mam inny problem teraz. Jest funkcja: var EOFound : boolean; Res: TSearchRec begin EOFound:= False; if FindFirst(input+'\*', faAnyFile - faDirectory, Res) < 0 then exit else while not EOFound do begin ... showMessage( Res.Name ); ... EOFound:= FindNext(Res) <> 0; end; FindClose(Res); end No i Res.Name poakazuje nazwy plików, ale od razu zmienia mi na małe literki, a ja potrzebuję też widzieć wielkie litery w nazwie, inczaej psuje mi to cały skrypt. Ktoś ma pomysł ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 2 Czerwca 2009 Udostępnij Opublikowano 2 Czerwca 2009 1. nie powinno zwracać małych liter bo nie są konwertowane na lowercase w skrypcie (sprawdziłem source SysUtils) 2. nie korzystaj z dużych liter, zastosuj inny system? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 3 Czerwca 2009 Autor Administratorzy Udostępnij Opublikowano 3 Czerwca 2009 Wiesz co, założenie jest takie, że ten skrypt tworzy paczkę zasobów do Game Makera i musiał bym teraz spędzić kilka godzin, żeby przeszukać obiekty i pozmieniać nazwy zasobom na małe litery. Edit: z jakiegoś powodu przypisanie Res.Name do innej zmiennej zmieniało litery na małe - w obu zmiennych. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 4 Czerwca 2009 Udostępnij Opublikowano 4 Czerwca 2009 masz moje gg? bo sprawdziłem to i przy wyszukiwaniu nazwy plików nie są zamieniane na mniejsze litery a oto przykład function GetSpecialFolderPath(const Folder: Integer): string; var Path: array[0..MAX_PATH] of Char; begin SHGetSpecialFolderPath(0, Path, Folder , False); Result := Path; end; procedure TForm1.FormCreate(Sender: TObject); const CSIDL_PROFILE = 40; var path : string; SearchResult : TSearchRec; begin path := GetSpecialFolderPath(CSIDL_PROFILE); path := path + '\Dane aplikacji\Nowe Gadu-Gadu\'; if FindFirst(path+'*.*', faDirectory, SearchResult) = 0 then begin repeat if (SearchResult.Name <> '.') then begin if (SearchResult.Name <> '..') then begin showmessage(SearchResult.Name); sleep(100); end; end; until FindNext(SearchResult) <> 0; FindClose(searchResult); end; end; zwraca nazwy takie jakimi są z dużymi i małymi literami. musiałeś gdzieś w kodzie umieścić funkcje lowercase bądź dać złą ścieżkę do szukania... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 4 Czerwca 2009 Autor Administratorzy Udostępnij Opublikowano 4 Czerwca 2009 Było tak: begin showMessage( Res.Name ); //duze litery np.: sprMask1.gif _fileext := ExtractFileExt( StrLower ( pchar(Res.Name) ) ); showMessage( Res.Name ); // już małe litery np.: sprmask1.gif ... Nom i nie wiem dla czego, nagle Res.Name ma małe litery. Ale przed _fileext zrobiłem sobie zmienną _name i przypisałem Res.Name, dzięki czemu potem mam nadal dostęp do nazwy pliku z duzymi literami i jest ok. Ważne, ze działa, nie ważne jak xD Jeszcze się zastanawiam, czy do wersji konsolowej tego nie przepisać, to będzie dopiero lekkie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 4 Czerwca 2009 Udostępnij Opublikowano 4 Czerwca 2009 StrLower ... użyj lowercase, ono nie zamienia liter w źródle tak i jak w rezultacie... _fileext := ExtractFileExt( LowerCase ( pchar(Res.Name) ) ); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 4 Czerwca 2009 Autor Administratorzy Udostępnij Opublikowano 4 Czerwca 2009 No cóż, nigdy nie przypuszczałem, że jak napiszę a=0; b = a + 5;, to a i b będą sobie równe, ale widocznie w Delphi wszystko jest możliwe... Kto by pomyślał, że poza zwróceniem wartości modyfikowane są zmienne? Dzięki za info. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 4 Czerwca 2009 Udostępnij Opublikowano 4 Czerwca 2009 nie nie nie ;p po prostu tamta funkcja tak działa i zmienna w niej tez jest modyfikowana (pchar - pointer do stringa) thats why ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 4 Czerwca 2009 Autor Administratorzy Udostępnij Opublikowano 4 Czerwca 2009 Ahh, te pointery xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 4 Czerwca 2009 Udostępnij Opublikowano 4 Czerwca 2009 w gruncie rzeczy dajesz do tamtej funkcji pointer a ona zwraca ten sam pointer tylko, że z zmienionymi znakami, dlatego w obu litery są małe ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się