Wosiedem Napisano Maj 4, 2009 Zgłoś Share Napisano Maj 4, 2009 Jakiś czas temu chciałeś, żeby ktoś przetłumaczył pewien kod na C++ #include <iostream> using namespace std; #include <windows.h> typedef void (*voidchar)(char*); typedef void (*voidvoid)(); typedef int (*intvoid)(); typedef char* (*charint)(int); typedef bool (*boolvoid)(); int main() { HMODULE hModule = LoadLibrary ("sense_script.dll"); if (hModule == NULL) { cout << "Nie udalo sie wczytac dll" << endl; return 1; } boolvoid IsDone = (boolvoid)(GetProcAddress (hModule, "IsDone")); voidvoid _Prepare = (voidvoid)(GetProcAddress (hModule, "_Prepare")); voidvoid _Exec = (voidvoid)(GetProcAddress (hModule, "_Exec")); voidchar _AddCodeLine = (voidchar)(GetProcAddress (hModule, "_AddCodeLine")); intvoid _OutLines = (intvoid)GetProcAddress (hModule, "_OutLines"); charint _GetOutLine = (charint)GetProcAddress (hModule, "_GetOutLine"); if (_AddCodeLine == NULL || IsDone == NULL ||_Prepare == NULL ||_Exec == NULL ||_OutLines == NULL || _GetOutLine == NULL ) { cout << "Nieodnaleziono fukncji" << endl; return 2; } _Prepare(); /*_AddCodeLine("set(height, 1200);"); _AddCodeLine("set(width, 1500);"); _AddCodeLine("set(title, 'Hello');"); _AddCodeLine("Beep(100, 2000);"); _AddCodeLine("System.Msg( 'Hello!');");*/ _AddCodeLine("out('Hello World by Wosiedem');"); _Exec(); while (!IsDone()); int howMany = _OutLines(); for (int i=1; i<=howMany; i++) { cout << _GetOutLine(i) << endl; } return 0; } To nie jest dokładnie to o co prosiłeś, ale realizuje te sama funkcje: pokazuje jak użyć interpretatora we własnym programie Pozdrawiam, vo7 (; Link do komentarza Udostępnij na innych stronach More sharing options...
jakubkrol Napisano Maj 4, 2009 Autor Zgłoś Share Napisano Maj 4, 2009 WIELKIE DZIĘKI!! Bardzo Ci dziękuję, że to zrobiłeś! Oczywiście z dopiskiem "by Wosiedem" będzie w następnej wersji. Oraz dodam zaraz do sense script Wiki. Ciesze się bardzo, że mi pomogłeś, dziękuję! Mały edicik i offtop zarazem : W C++ to zapisywać jako plik np sensescriptRun.h , tak? // OK rozwiązane, dzięki Wosiedem Jeszcze jeden EDIT ;D: Jak coś to napisałem krótkiego tutka: Struktury danych - o używaniu tablic, czy rekordów w sensescript. Tutek dostępny: http://programowanie.66ghz.com/articles.php?article_id=7 / http://4programmers.net/%5Bsense_script%5D_struktury_danych / http://ss-wiki.isgreat.org/doku.php/data_structures Pozdrawiam! Link do komentarza Udostępnij na innych stronach More sharing options...
jakubkrol Napisano Maj 5, 2009 Autor Zgłoś Share Napisano Maj 5, 2009 Dobra, ponieważ były opinie, że tak wygodniej (lub nawet że tak nie umiem xD) to w następnej wersji będzie można tradycyjnie używać x=cośtam(y); Np: KODmath(w, '2+5'); jak i KODw=math('3+5'); Będzie równoznaczne i do zmiennej w zapisze 8 ;] Działać to będzie oczywiście dla KAŻDEJ funkcji. Jakieś pytania ;] ? Link do komentarza Udostępnij na innych stronach More sharing options...
Dexarz Napisano Maj 6, 2009 Zgłoś Share Napisano Maj 6, 2009 No nareszcie A najlepiej by było gdyby nie trzeba by było w ogóle korzystać z math ,a robić to bezpośrednio czyli x=3+5 Aktualnie piszę 32 bitowy system operacyjny. ASE2.0 100% ,DME (Dynamic Motion Engine) v2.0 10% ,32 bit PumaOS - 40% Stick's Adventure 3 - 0% Komp nr.1 AMD Duron 1,3 Ghz ,256 MB Ram DDR PC133 (na eBoostr mam jeszcze 1 GB) ,Nvidia GeForce FX 5500 256MB DDR Komp nr.2 (laptop) AMD Athlon XP 2,0 Ghz , 192 MB Ram DDR PC2700 (na eBoostr mam jeszcze 3 GB) , Via S3 Unichrome IGP Przykład programu w ASE2.0: <?arg #CreateProcs; $i:?; #For('$i,10,1,@Lab');@Lab; #Sleep(100); #Message("Ten komputer ulegnie autodestrukcji za $i sekund"); #Retf; #Message('Dead'); arg?> Link do komentarza Udostępnij na innych stronach More sharing options...
Brainer Napisano Maj 6, 2009 Zgłoś Share Napisano Maj 6, 2009 Do mnie bardziej jakoś przemawia to pierwsze wyjście - może pomóc w debugowaniu. .: Brainer :. patrick.nusbaum@gmail.com Link do komentarza Udostępnij na innych stronach More sharing options...
jakubkrol Napisano Maj 6, 2009 Autor Zgłoś Share Napisano Maj 6, 2009 @Dexarz & @Brainer - to, jak kto użyje to jego wola ;] - będzie można używać i np. Internet.GetIP(zmienna); (co np wg mnie jest lepsze), jak i zmienna = Internet.GetIP(); - oba będą poprawne i oba będą działały... I jeszcze @Dexarz - spox, to też będzie... (x = *[y] + 1; na przykład) Zastanawiam się tylko kiedy wydać kolejną paczkę.. Link do komentarza Udostępnij na innych stronach More sharing options...
Nvm Napisano Maj 6, 2009 Zgłoś Share Napisano Maj 6, 2009 To leci na stringach czy na zwykłych zmiennych liczbowych (w sensie ta matematyka cała, no wiesz o co mi chodzi - w sensie czy można zrobić 999999999^98888888 i się nie wywali )? Link do komentarza Udostępnij na innych stronach More sharing options...
jakubkrol Napisano Maj 7, 2009 Autor Zgłoś Share Napisano Maj 7, 2009 Sprawdzimy.. xD robie KODile=module.UCalcul('999999999^98888888'); out(*[ile]); ... Emm... Wychodzi wynik: CYTATINF lub Inf+ w zależności od użycia math lub module.ucalcul... o_O nie wiem co to znaczy szczerze mówiąc xD Link do komentarza Udostępnij na innych stronach More sharing options...
lewymati Napisano Maj 7, 2009 Zgłoś Share Napisano Maj 7, 2009 inf to skrót od infinity - nieskończoność Nvm-owi chodziło o to czy obsługujesz także większe liczby niż 32 czy tam 64 bitowe No ale jak widać te funkcje z modułu math to nie twoje p: Piszę proste programy i stronki internetowe na zlecenie, zaliczenie... Delphi, Pascal, C++, (X)HTML, CSS, trochę PHP, Javascript i MySQL Kontakt: gg:1477872 e-mail: lewymati@wp.pl Link do komentarza Udostępnij na innych stronach More sharing options...
jakubkrol Napisano Maj 7, 2009 Autor Zgłoś Share Napisano Maj 7, 2009 Math jak najbardziej moje, ale Module.UCalcul już nie (o czym pisze na http://ss-wiki.isgreat.org/doku.php/module.ucalcul ;]). Po prostu tak zwrócił mi Delphi i nie wiedziałem dlaczego.. o_O I dzięki za odpowiedź Jak widać na gigantycznych (strasznie gigantycznych ) liczbach operować nie można.. Za pewne dodam więc moduł dla gigantycznych liczb... ;] PS. teraz działa już to o co prosił Dexarz: Np można sobie zrobić: KODx=5 + *[y]; oczywiście nadal funkcjonuje też stara struktura!: KODmath(x, '5+*[y]');, czy KODx = math('5+*[y]'); Wszystkie trzy wyrażenia będą brane pod uwagę;] Dodam tylko, że przy wpisywaniu wyrażeń w ten sposób: zmienna = cośtam * coś tam; itp używany jest moduł UCalcul (więcej o nim na http://ss-wiki.isgreat.org/doku.php/module.ucalcul), więc można operować AND, OR itp itd..;] Trzeba jedynie pamiętać o jednej małej przeszkodzie: Np. nie zadziała nam: KODx=*[y] + cos(35); TAKIE WYRAŻENIE BĘDZIE BŁĘDNE! Jeżeli bowiem występują w naszym wyrażeniu nawiasy, to należy całe wyrażenie umieścić w nawiasach, np: KODx=(*[y] + cos(35)); Mam nadzieję, że tym którym podobała się składnia sense script zostaną przy starej, natomiast Ci, którzy na nią narzekali będą już mogli znaleźć "coś dla siebie" Link do komentarza Udostępnij na innych stronach More sharing options...
jakubkrol Napisano Maj 8, 2009 Autor Zgłoś Share Napisano Maj 8, 2009 Bardzo miło mi poinformować, że udało mi się znacznie poprawić wydajność sense script..! sense script był troszkę mało wydajny.. Teraz z dumą mogę stwierdzić, że jest bardzo wydajny. Zabiera w pamięci do ponad 60% mniej miejsca! A co za tym idzie, jego praca znacznie przyspieszyła! Uruchomcie sobie przykład "99 bottle of beer - simpler ver.sense) - uruchomienie go trwa ok. 700-1500MS... W następnej wersji (jeszcze jej nie upubliczniłem) ten sam przykład wykonuje się w 52-97MS! (jest to czas potrzebny Windowsowi, aby linijka po linijce dodawać tekst do memo) Link do komentarza Udostępnij na innych stronach More sharing options...
Dexarz Napisano Maj 8, 2009 Zgłoś Share Napisano Maj 8, 2009 No to szybko ,niezłe cacko xD Brakuje mi jeszcze jakieś łatwiejsze tworzenie funkcji i procedur i będzie gitara xD Aktualnie piszę 32 bitowy system operacyjny. ASE2.0 100% ,DME (Dynamic Motion Engine) v2.0 10% ,32 bit PumaOS - 40% Stick's Adventure 3 - 0% Komp nr.1 AMD Duron 1,3 Ghz ,256 MB Ram DDR PC133 (na eBoostr mam jeszcze 1 GB) ,Nvidia GeForce FX 5500 256MB DDR Komp nr.2 (laptop) AMD Athlon XP 2,0 Ghz , 192 MB Ram DDR PC2700 (na eBoostr mam jeszcze 3 GB) , Via S3 Unichrome IGP Przykład programu w ASE2.0: <?arg #CreateProcs; $i:?; #For('$i,10,1,@Lab');@Lab; #Sleep(100); #Message("Ten komputer ulegnie autodestrukcji za $i sekund"); #Retf; #Message('Dead'); arg?> Link do komentarza Udostępnij na innych stronach More sharing options...
jakubkrol Napisano Wrzesień 19, 2009 Autor Zgłoś Share Napisano Wrzesień 19, 2009 WITAM SERDECZNIE! Od tej wersji o której tu pisałem zaszło wieeele zmian! Co w nich? 1. Łatwiejsze tworzenie procedur na przykład. Lepsza obsługa dynamiczna okienek ( awięc można tworzyć aplikacje) 2. Składnia C-poodobna w wielu wyrażeniach! Np: Nie trzeba już pisać: KODmath(a, '2 * 2'); set(b, 3); Module.uCalcul(logiczny, '*[bb] OR *[cc] OR *[dd]'); A można zamiast tego: KODa = 2 * 2; b=3; logiczny = *[bb] OR *[cc] OR *[dd]; Wprowadzę następnie jeszcze większe udogodnienia (w trakcie ;>) 3. Nowe przydatnie funkcje (np. md5, pobranie pliku, strony, obsługa schowka systemowego) 4. Ulepszony znacznie Compliter (np. Fast Help tool na selection->Ctrl+F1, Fast insertion, Fast help) 5. Poprawione wiele poważnych bugów 6. OPTYMALIZACJA przez duże O Teraz wykonanie kodu, które wtedy wykonywało się ok. 90ms teraz trwa 0-1 I możecie zobaczyć wiele, wiele, wiele więcej ciekawych zmian! Zapraszam do artykułu "Poznaj sense script 1.3.0" na stronie http://programowanie.66ghz.com/articles.php?article_id=14 Proszę o opinie, uwagii, błędy i oceny Pozdrawiam Was serdecznie! Link do komentarza Udostępnij na innych stronach More sharing options...
KANAR123 Napisano Wrzesień 19, 2009 Zgłoś Share Napisano Wrzesień 19, 2009 Widzę że dalej to ciągniesz, powodzenia ale co chcesz przez to osiągnąć ? Link do komentarza Udostępnij na innych stronach More sharing options...
KaYou Napisano Wrzesień 20, 2009 Zgłoś Share Napisano Wrzesień 20, 2009 Sądzę że satysfakcję. "(2b || !(2b)) == question" W. Shakespeare http://jakubniwa.pl - świat sztucznej inteligencji Link do komentarza Udostępnij na innych stronach More sharing options...
jakubkrol Napisano Wrzesień 20, 2009 Autor Zgłoś Share Napisano Wrzesień 20, 2009 Hm.. No cóż - satysfakcję przede wszystkim Ale chciałbym też żeby to było dla kogoś przydatne i w miarę proste Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.