Skocz do zawartości

ASE2.0


Dexarz

Polecane posty

No i ukończyłem tę argente :D

 

Link:

BOX.NET

 

Archiwum zawiera plik exe interpretatora ,plik dcu silnika ASE (Do używania we własnych programach) i 6 plików przykładowych i instrukcja obsługi pliku dcu...

 

Przypominam ,ze nie ma If-Then i While ,bo to może zrobić użytkownik korzystając z procek CMPXXX jakie wam dałem do projektu ...Nie testowałem czy działają zewnętrzne biblioteki ,ale sądzę ,ze powinny ...

 

W przyszłości napisze poradnik do języka ..ale to jak będę miał gotową stronę internetową ...

 

Pamiętajcie ,ze przed korzystaniem z procek np #Message ,aby upewnić się ,że wcześniej ta procka została stworzona (robi to funkcja #CreateProcs ...bez niej macie czystą Argente ...)

 

aaa i pamiętać ,ze Argenta rozróżnia duże i małe litery ,więc zapis $I i $i ,to 2 całkiem inne zmienne !!!To samo tyczy się reszty ...

 

W razie kłopotów dawać loga ,to sprawdzę oco chodzi ...

 

Skrypty uruchamiamy przeciągając plik ,na ikonę interpretatora ,lub wpisując ścieżkę po włączeniu ...

 

 

 

Pozdrawiam i miłego Argentowania ...

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

Nie ma dokumentacji wogóle. Tak wiem, FSL też nie ma, ale ma jakiś tam plik readme oraz opiera się na tym że ma składnię jak pascal więc jest łatwiej. ASE nie ma składni do niczego podobnej więc nic się nie wie. Nie wiem po co jest też plik dcu, skoro też nie ma doca co z nim zrobić. najpierw rozbijasz linijki na atomy a potem każdy badasz, zwiększając licznik więc błędy pokazuje w złych linijkach. Powinno zliczać retfy, pętla może mieć więcej forów niż retfów. Nie wiadomo co zrobić z Read,Writeln. Jako plus powiem, że przynajmniej można pętle zagnieżdżać.

Tym: $n:=$m*$l+'888'; wywala się wogóle nie wiadomo jak przypisać

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

W przyszłości zrobię dokumentacje ...

 

Force to normalne ze ci niedziala .bo łamiesz pewną zasadę ..

 

powinno być

 

$n:=$m*$l+888;

 

Pamiętaj ,że jak dostajesz loga to tam na początku masz napisane kod i według tego okreslasz linie ...

 

Dzisiaj poprawie pewien bajer i dodam inny bajer i bedzie luz

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

A jak w Delphi napiszesz 2+'34' to też się wykrzaczy ...

 

Składniowo przypomina PHP ,ale nie całkowicie ...To raczej mix Asma ,moich pomysłów I PHP

 

 

 

EDIT

 

 

 

To link do nowej wersji ASE ..

(Usunąłem ,ale link jest w głównym poście )

 

Poprawione:

-Lądowanie plików (w przypadku gdy nic nie wpiszemy do konsoli ,a wcześniej nie przeciągnęliśmy parametru to program się nie wykrzaczy i nie będzie błędów pamięciowych )

-Usunięte wycieki pamięci

-Poprawione podawanie parametrów w postaci Stringa i Integera ...

Dodałem nową prockę #Then ,która skacze do miejsca (działa jak procka #Jump) ,ale tylko wtedy ,jeśli warunek jest "true" lub "0" (pierwszy parametr) ...

 

I poprawiłem błąd Forca ...Teraz Drogi Force'ie program się nie wykrzaczy jeśli wpiszesz 2*2+'344' ,a walnie błąd "Invalid Number" ... ...

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

Dalej, źle pokazuje linijkę z błędem.

Do skryptu2 przed sleepem dałem $i:=$i div 0; powinno wywalić, że dzielę przez 0.. tymczasem pokazuje mi, że zostało 100,90,80 sekund

Gdy w skrypt2 podwoiłem cały kod (były dwa bloki

W ogóle skoro nie ustala się typów zmiennych to jaki jest sens zabronić 6*'89', a gdyby było 6*$d gdzie $d='78' to wywali? czemu miałoby wywalić skoro user nie zna typu powinno samo konwertować typy z każdego na każdy jak w php

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

Sprawdź ,ale z góry mówie że nie wywali ..

 

Mam prosbe walnij tu loga ,wiem że jest spory ,ale łatwiej mi dostrzec bład

 

EDIT

 

Chyba wiem dlaczego masz errora kiedy podwoiles kod ...

 

Ile razy wywołujesz Procke #CreateProcs ??Bo jeśli więcej niż 2 razy ,to w logu powienines mieć w sekcji procedure napisane 48-49 procek ...To norlane ze masz ten błąd ..Procek Sleep jest 2 ,co powoduje podwójne wykonywanie procki ...A to z kolej powoduje ,ze po zrobieniu za 1 razem paramatery (nasze 100) jest usuwane ...

 

 

 

EDIT2

 

Poprawiłem błąd z logiem (zdarzało się u mnie ,ze w katalogu z programem ,nie pojawiał sie ..) i kilka bajerów z Procką #Jump i #Then (błędne skoki tzn ,do złych linii skakało) i błąd ,że jak nie podawaliśmy nic jako parametr (a wymagany) to program wywalał w logu błąd ,ze brak parametrów ...Usunąłem to ,bo wystarczyło by napisać ShowMessage('') i błąd gotowy ...

 

Link w głównym poście ...

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

No dziwię się to trzeba napisać. To nie kwesta div bezwględu czy mam $i div 0; $i di 0; $i d 0 czy $i 0; to jest to samo.

"To norlane ze masz ten błąd"

To nie jest naturalne, komunikat nie mówi co jest źle, nie wiadomo czemu jest źle, zwłaszcza, że złą linijkę wskazuje

Przy $i / 0 mówi, że 0 to nieprawidłowa liczba, ale nie w sensie, że do dzielenia, taki sam błąd byłby gdybym dzielił przez "a" (bez cytatów, "a" nie jest znane), powinno pisać cannot divide by 0 czy coś takiego

"1v4 to wiesz co obliczasz ??V to pierwiastek więc liczy pierwiastek z 4 i przed 4 daje 1 ...Czyli wyjdzie 14 xD .." znam inną wartość pierwiastka z 4, ba są dwie wartości i napewno nie 4, a 2 i -2.

I skoro po wykonaniu programu folderu nie mogę skasować to dalej masz coś źle

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

Sorka pomyliło mi się z tym 14 ,tak maiło być 12 xD ..Masz to samo ,bo w di losujesz liczbę miedzy 0 a obciętym ułamkiem z 0 ,a w d po prostu losujesz miedzy 0 a liczba tu 0 ..

 

Masz ze nieprawidłowa liczba ,bo cały blok z obliczaniem jest w wyjatku i dlatego masz ten sam błąd ...Mogę to poprawić (już poprawione),ale masz chyba w nawiasie przed opisem błędu ,kod który błąd spowodował ...Więc można się domyślić ...

 

 

I nie gadaj ,że pokazuje zła linie ,bo prawidłowa ..To w nawiasie to nie cały kod tzn przepisana linijka ,tylko aktualnie sformatowany kod nad którym pracował silnik ..Jak c pisze 0w nawiasie to to nie oznacza ,że w linijce gdzie masz 0; tylko ,ze to kod kory spowodował błąd ...A to przed nawiasem ,to prawidłowa linijka kodu tzn numer linii (wcześniej sformatowanego) ...

 

I powtarzam ,dawaj loga ,jeśli możesz i gadaj o co ci chodzi ,dokładnie...

 

Jeśli chodzi o to ,ze nie możesz skasować ,to nie wiem ...sprawdze to ..Ja poprawiłem to tak ,ze wcześniej miałem ArgLog.SaveToFile('ArgentaLog.txt') ,ale to działało tylko w Delphi ...,Potem już jak włączałem program osobno (a nie w delphi) ,to żaden plik sie nie pojawiał ,więc poprawiłem na ArgLog.SaveToFile(extractfilepath(ParamStr(0))+'ArgentaLog.txt') ..Wtedy log uż się zapisywał poprawnie ...

 

 

EDIT

 

Skoro Force to 0 jest nie poprawne ,to naprawie to i dam jeszcze blokade ,żeby nie można było wykonywać procki #CreateProcs 2 razy ...

 

Dałem dodatkowo w opisie błedu ,kod , w którym był błąd ..Tzn aktualnie wykonywany kod ...

 

Link w głównym poście ..

 

A i jeszcze zamiast pliku dcu ,dałem plik pas ,to wtedy łatwiej namierzyć błąd i może jakieś modyfikacje wprowadzicie ...

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

I powtarzam ,dawaj loga ,jeśli możesz i gadaj o co ci chodzi ,dokładnie...

Weź mnie nie denerwuj, nie pokazujesz która linijka tylko , która komenda liczac od początku pliku,

KOD

<?arg #CreateProcs; $i:?;

#For('$i,10,1,@Lab');@Lab;

#Message("Ten komputer ulegnie autodestrukcji za $i sekund");#Sleep(s'b'00);#Sleep(s'b'00);#Sleep(s'b'00);dfgdg

#Retf;

#Message('Dead');

arg?>

pokazuje, że błąd jest w 9 linijce,policz ile ten kod ma linijek, nie ma 9.

Dodatkowo masz strasznie mało przewidywalny język "s'b'00" rozumie jako parametr. Bez względu czy to było zamierzone, że coś tam "s" robi to jest to złe bo jak ktoś zrobi literówkę to nigdy nie skapnie się co źle działa.

Okrutne formatowanie kodu to nie wiem jak ktoś coś poprawi.

Wartości zmiennych trzymasz jako string co jest okrutnie wolne, zwłaszcza, że raz ustalony typ wartości się nie zmienia.

Non stop robisz operacje na stringach, Delete, String itp. to strasznie spowalnia/

KODwhile (Pos('v',Var2)>0) or (Pos('r',Var2)>0) or (Pos('t',Var2)>0) or (Pos('d',Var2)>0) or (Pos('c',Var2)>0) or (Pos('f',Var2)>0) or (Pos('i',Var2)>0) or (Pos('l',Var2)>0) or (Pos('s',Var2)>0) do

begin

If (Pos('v',Var2)>0) and (Pos('v',Var2)>Pos('r',Var2)) and (Pos('v',Var2)>Pos('t',Var2)) and (Pos('v',Var2)>Pos('d',Var2)) and (Pos('v',Var2)>Pos('c',Var2)) and (Pos('v',Var2)>Pos('f',Var2)) and (Pos('v',Var2)>Pos('i',Var2)) and (Pos('v',Var2)>Pos('l',Var2)) and (Pos('v',Var2)>Pos('s',Var2))then

begin

Var4:=Copy(var2,Pos('v',Var2)+1,Length(Var2));

Var4:=currtostr(sqrt(strtocurrdef(Var4,0)));

Delete(var2,Pos('v',Var2)+1,Length(Var2));

Insert(var4,var2,Pos('v',Var2)+1);

Delete(var2,Pos('v',Var2),1);

end;

If (Pos('r',Var2)>0) and (Pos('r',Var2)>Pos('v',Var2)) and (Pos('r',Var2)>Pos('t',Var2)) and (Pos('r',Var2)>Pos('d',Var2)) and (Pos('r',Var2)>Pos('c',Var2)) and (Pos('r',Var2)>Pos('f',Var2)) and (Pos('r',Var2)>Pos('i',Var2)) and (Pos('r',Var2)>Pos('l',Var2)) and (Pos('r',Var2)>Pos('s',Var2))then

begin

Var4:=Copy(var2,Pos('r',Var2)+1,Length(Var2));

Var4:=currtostr(Round(strtocurrdef(Var4,0)));

Delete(var2,Pos('r',Var2)+1,Length(Var2));

Insert(var4,var2,Pos('r',Var2)+1);

Delete(var2,Pos('r',Var2),1);

end;

If (Pos('t',Var2)>0) and (Pos('t',Var2)>Pos('v',Var2)) and (Pos('t',Var2)>Pos('r',Var2)) and (Pos('t',Var2)>Pos('d',Var2)) and (Pos('t',Var2)>Pos('c',Var2)) and (Pos('t',Var2)>Pos('f',Var2)) and (Pos('t',Var2)>Pos('i',Var2)) and (Pos('t',Var2)>Pos('l',Var2)) and (Pos('t',Var2)>Pos('s',Var2))then

begin

Var4:=Copy(var2,Pos('t',Var2)+1,Length(Var2));

Var4:=currtostr(Trunc(strtocurrdef(Var4,0)));

Delete(var2,Pos('t',Var2)+1,Length(Var2));

Insert(var4,var2,Pos('t',Var2)+1);

Delete(var2,Pos('t',Var2),1);

end;

If (Pos('d',Var2)>0) and (Pos('d',Var2)>Pos('v',Var2)) and (Pos('d',Var2)>Pos('r',Var2)) and (Pos('d',Var2)>Pos('t',Var2)) and (Pos('d',Var2)>Pos('v',Var2)) and (Pos('d',Var2)>Pos('f',Var2)) and (Pos('d',Var2)>Pos('i',Var2)) and (Pos('d',Var2)>Pos('l',Var2)) and (Pos('d',Var2)>Pos('s',Var2))then

begin

Randomize;

Var4:=Copy(var2,Pos('d',Var2)+1,Length(Var2));

Var4:=currtostr(random(strtointdef(Var4,0)));

Delete(var2,Pos('d',Var2)+1,Length(Var2));

Insert(var4,var2,Pos('d',Var2)+1);

Delete(var2,Pos('d',Var2),1);

end;

If (Pos('c',Var2)>0) and (Pos('c',Var2)>Pos('v',Var2)) and (Pos('c',Var2)>Pos('r',Var2)) and (Pos('c',Var2)>Pos('t',Var2)) and (Pos('c',Var2)>Pos('v',Var2)) and (Pos('c',Var2)>Pos('f',Var2)) and (Pos('c',Var2)>Pos('i',Var2)) and (Pos('c',Var2)>Pos('l',Var2)) and (Pos('c',Var2)>Pos('s',Var2))then

begin

Var4:=Copy(var2,Pos('c',Var2)+1,Length(Var2));

Var4:=currtostr(cos(DegToRad(strtocurrdef(Var4,0))));

Delete(var2,Pos('c',Var2)+1,Length(Var2));

Insert(var4,var2,Pos('c',Var2)+1);

Delete(var2,Pos('c',Var2),1);

end;

If (Pos('f',Var2)>0) and (Pos('f',Var2)>Pos('v',Var2)) and (Pos('f',Var2)>Pos('r',Var2)) and (Pos('f',Var2)>Pos('t',Var2)) and (Pos('f',Var2)>Pos('v',Var2)) and (Pos('f',Var2)>Pos('c',Var2)) and (Pos('f',Var2)>Pos('i',Var2)) and (Pos('f',Var2)>Pos('l',Var2)) and (Pos('f',Var2)>Pos('s',Var2))then

begin

Var4:=Copy(var2,Pos('f',Var2)+1,Length(Var2));

Var4:=currtostr(frac(strtocurrdef(Var4,0)));

Delete(var2,Pos('f',Var2)+1,Length(Var2));

Insert(var4,var2,Pos('f',Var2)+1);

Delete(var2,Pos('f',Var2),1);

end;

If (Pos('i',Var2)>0) and (Pos('i',Var2)>Pos('v',Var2)) and (Pos('i',Var2)>Pos('r',Var2)) and (Pos('i',Var2)>Pos('t',Var2)) and (Pos('i',Var2)>Pos('v',Var2)) and (Pos('i',Var2)>Pos('c',Var2)) and (Pos('i',Var2)>Pos('f',Var2)) and (Pos('i',Var2)>Pos('l',Var2)) and (Pos('i',Var2)>Pos('s',Var2))then

begin

Var4:=Copy(var2,Pos('i',Var2)+1,Length(Var2));

Var4:=currtostr(int(strtocurrdef(Var4,0)));

Delete(var2,Pos('i',Var2)+1,Length(Var2));

Insert(var4,var2,Pos('i',Var2)+1);

Delete(var2,Pos('i',Var2),1);

end;

If (Pos('l',Var2)>0) and (Pos('l',Var2)>Pos('v',Var2)) and (Pos('l',Var2)>Pos('r',Var2)) and (Pos('l',Var2)>Pos('t',Var2)) and (Pos('l',Var2)>Pos('v',Var2)) and (Pos('l',Var2)>Pos('c',Var2)) and (Pos('l',Var2)>Pos('f',Var2)) and (Pos('l',Var2)>Pos('i',Var2)) and (Pos('l',Var2)>Pos('s',Var2))then

begin

Var4:=Copy(var2,Pos('l',Var2)+1,Length(Var2));

Var4:=currtostr(ln(strtocurrdef(Var4,0)));

Delete(var2,Pos('l',Var2)+1,Length(Var2));

Insert(var4,var2,Pos('l',Var2)+1);

Delete(var2,Pos('l',Var2),1);

end;

If (Pos('s',Var2)>0) and (Pos('s',Var2)>Pos('v',Var2)) and (Pos('s',Var2)>Pos('r',Var2)) and (Pos('s',Var2)>Pos('t',Var2)) and (Pos('s',Var2)>Pos('v',Var2)) and (Pos('s',Var2)>Pos('c',Var2)) and (Pos('s',Var2)>Pos('f',Var2)) and (Pos('s',Var2)>Pos('i',Var2)) and (Pos('s',Var2)>Pos('l',Var2))then

begin

Var4:=Copy(var2,Pos('s',Var2)+1,Length(Var2));

Var4:=currtostr(sin(DegToRad(strtocurrdef(Var4,0))));

Delete(var2,Pos('s',Var2)+1,Length(Var2));

Insert(var4,var2,Pos('s',Var2)+1);

Delete(var2,Pos('s',Var2),1);

end;

miażdży. Zamiast tak robić dla każde litery badaj pos i jak jest większy od tempa to podmień tempa, liniowe nie kwadratowe, 6 razy mniej kodu, choć nawet pewnie by się obeszło od tego, jakbyś używał posex i trzymał info gdzie sie bada to byś nie robił non stop Copy, Delete. Zrób sobie metodę pobierającą nastepny atom z pliku,szybsze, krótsze, ładniejsze, bardziej elastyczne, bez copy,delete. Przyda się ona w sumei wszędzie, a byś tyko ją wywoływał gdy potrzebujesz dostać nowy atom, a nie pos-ami szukał każdego możliwego. Ja u siebie mam od tego dwie metody majace w sumie może 200 linijek kodu, i wszędzie je wywołuje, jakbys tak miał byś skrócił kod pewnie o 1/3, zacytuje "szybsze, krótsze, ładniejsze, bardziej elastyczne"

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

Ooops xD

 

Jak dostajesz loga ,to tam masz na początku (przewin sobie) masz jak został sformatowany kod i wtedy zajażysz ,ze jest 9 linii ...

 

Reszta wszystko jest ok i tak zostawie ..Co do tych delete ,to racja spowalnia kod ,ale ile procent ?? Myślałem nad posexem itd ,ale dla ułatwienia sobie tak zostawiłem ...

 

Pozdrawiam ...

 

 

PS ...Mówisz ,ze mam przetrzymywać posy w zmiennych i wtedy sprawdzać ,a nie tak dynamicznie ??No ,czyli zrobie podobnie jak mam w prockach zmiennych i stałych ...

 

PS2. Jest mało przewidywalny ,wiem ,ale co mam wszystko robic za uzytkownika ??

 

"a"'b'"c'+'d'+'a' ,to przejdzie spokojnie ,a że użytkownik dał literówke ,to mi to zwisa ..Kod trzeba sprawdzać ,a nie na ślepo !!

 

'a' b' - to juz nie przejdzie :) Walnie błąd co to "b" xD ...Dlatego jeśli chcemy skorzystać z ' w stringach ' ' to przed ' dajmy / czyli tak : 'a/' b' ....

 

 

PS3 ..Nie no na prawde z tym kodem co podałeś to przesadziłem ...Teraz zrobie to tak ,że posy dam do zmiennych (których jak widzisz w Calculate jest sporo) i potem sprawdzam według zmiennych ,a nie posów ...

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

Ad. nie jest dobrze, numer linijki powinien być linijką u usera, a nie kodu pośredniego, nie wiem co za problem przy kazdym Twoim atomie trzymać linijką z której on był u usera. Delete i inserty ostro spowalniają, zwłaszcza, że non stop na nich wszystko idzie, tak samo jak trzymanie wartości jako string przy każdej operacji robisz konwersję na integera, a potem z powrotem na stringa

Ad. PS, nie nie mówię, tak wystarczą 2 zmienne bez względu na ilość pos-ów, to tak z szukaniem maksa w ciągu liczby trzymasz indeks liczby i jej wartość. Powinieneś wczytywać atomy od lewej do prawej to od razu będziesz miał najbliższą operacją

Ad. PS2 Tak, powinieneś zrobić wszystko za użytkownika, zakładaj, że idiota używa ASE. Powinno się pisać z głową kod ale fakt, że się na pisało kod zgodnie z semantyką nie oznacza, że robi to co się założyło. zwłaszcza, że nie masz żadnych narzędzi do debugowania. A gdyby tak pisza ASE w Delphi pokazywało ci linijkę 12311 zamiast 2678, że błąd jest w "(Pos('l',Var2)>0)" majac dziesiatkich takich posów nie potrafiłbyś zlokalizować, co ASE rozumie jako 12311 chyba, że byś liczył każdy atom w swoim kodzie, aż znajdziesz 12311 zakładając, że się nie pomylisz licząc i byś wiedział jakie Delphi ma atomy. Tak samo trudno wyczaić błąd gdy się napisze Podi('l',Var2)>0) ci pewnie jak będziesz miał metody przejdzie, a tylko sie palec obsunie

Ad. PS3 pobieraj po kolei atomy z pliku lub nie używaj Pos-a, tylko sam skanuj stringa do pierwszej znanej litery lub.. pobieraj atomy

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

Ad1 .Da sie zrobić

Ad2 .Da sie zrobić

Ad3 .Programista nie może byc idiotą.Musi wiedzieć co robi i sprawdzać kod nawet 1000 razy ...Powinien analizować kod ,co mogłoby się stać ..Przynajmiej ja tak robię ...A jak ktos tak nie robi ,to lepiej żeby nie zajmował się programowaniem ...ASE ma być aelastyczny ..nie jak delphi ,ze majac 'lalala' 'lalala' walnie błąd ,tylko przyjmuje to ...Trzeba znać zasady języka ,a nie udawać ,że sie zna ..Jak nie wie co i jak to niech zobaczy dokumentacje (która się w przyszłości pojawi) ...Teraz niema jeszcze zadnego Debuggera ,ale kto wie ,może sie pojawić ??

 

Ad4 ...

Dobrym pomysłem ,jest własna analiza ...

 

 

O co ci chodzi z tym pobieraniem atomów ??Hę ??

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

Ad1,Ad2 to zrób, zwłaszcza Ad1.

Ad3. Znajomość zasad języka, a literówka to co innego, zwłaszcza, że Twój język nie jest bezkontekstowy oraz nie wiem jak ma się "Przynajmniej ja tak robię" do:

KOD

<?arg #CreateProcs; $i:?;$io:?;

$io:=67;

#For('$i,10,1,@Lab');@Lab;

$i := $io;

#Message("$io");

#Message("$i");

#Retf;

#Message('Dead');

arg?>

 

Powinno do $io przypisać 67, a messagach pisać 67, ale.. pisze mi 10oo, 10o,9oo,9o itd. jak zamiast $io zrobię $iv to mam 90v 90, itd.. Analiza kodu banalna, ale kompilator się wywala, robi co innego, jego myślenie odbiega do ludzkiego, nie da się przewidzieć działania, w teorii elastyczność mi zapewnia wiele, ale w praktyce nic nie wyjdzie. Gdy user 1000 razy ma kod sprawdzać to wina języka i ide bo język wyższego poziomu wzbudza zaufania więc rozluźnienie, myślenie nad tym co się chce napisać, a nie zanalizowanie każdego znaku, a tym czasem jest na odwrót, assemblera łatwiej przewidzieć.

Ad4. Pobieranie atomów, każdy język składa się z jakiś części niepodzielnych, jak =,

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

Taka dygresja, Dexarz napisales takie cos co mnie bardzo rozbawilo:

 

Programista nie może byc idiotą.Musi wiedzieć co robi i sprawdzać kod nawet 1000 razy ...Powinien analizować kod ,co mogłoby się stać ..Przynajmiej ja tak robię ...A jak ktos tak nie robi ,to lepiej żeby nie zajmował się programowaniem

 

teraz proponuje eksperyment myslowy:

popatrz na ten kod (taaaaki tasiemiec) co wkleil Force chyba z twojego silnika, i powiedz mi czy po 1000 krotnym przeanalizowaniu tego kodu stac cie tylko na wielokrotnie zagniezdzony if na 3-4 linijki ? Jesli tak to przeczytaj co implikuje twoje zdanie/stwierdzenie.

 

Inna zlota mysl to:

ASE ma być aelastyczny ..nie jak delphi ,ze majac 'lalala' 'lalala' walnie błąd ,tylko przyjmuje to

 

teraz ta trudna rzecz:

Odpowiedz na pytanie jaka byla geneza powstania jezyka Java skoro istnial/istnieje bardzo elastyczny jezyk C++ ?

 

jak juz przebrniesz przez to pytanie to odpowiedz sobie na drugie: dlaczego Java i C# sa dominujacymi w sektorze IT jezykami ?

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

Force ,to taki błąd ,który zauważyłem ostatnio (a może był zamierzony ??) ...Zamiast dawać wartość zmiennej $io daje $i ,bo wcześniej był wywołany ..A że nie sprawdzam czy to moje $i jest częścią tego ,sa takie błędy ...To też idzie do poprawki wiem ...

 

Mój język jest po to ,żeby wykonywać proste rzeczy ..Nie chodziło mi o super język tylko o coś co mogę wykorzystać tu i teraz bez bawienia się w jakieś delfiny i cepluskowce xD ...

 

Wiele mam błędów w Dephi ..Czasem kod nie działa z niewiadomych przyczyn i wtedy analizuje kod debuggerem ...

 

 

Myśle nad dawaniem ograniczenia w podawaniu danych tzn ,żeby + był obowiązkowy w łączeniu Stringów ...

 

 

Aha Force nie musisz pisać tak $io:?; $io:='lalala'; tylko możesz od razu z lalala .

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

po co wogóle podajesz linie jaka jest u Ciebie, a kogo to interesuje, która to linijka w kodzie pośrednim, tak jakby Delphi mówiło, że user ma błąd w $0A6790 (1212) co to daje userowi, że wie gdzie w kodzie pośrednim jest błąd, nic mu nie ułatwia, z resztą sam napisałeś "Podawanie prawidłowej pozycji błędu u usera" to po co mu nieprawidłowa?

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

Po to żeby ten ktos mógł dokładnie sprawdzić w logu ...

 

Naprawiłem większość błędów ,których przedtem napisałem ..Pracuje jeszcze nad obliczaniem ..Jutro dam nowy kod ..

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

No i jest chłopaki ...Link w głównym poście

 

Trochę dłużej mi to zajęło ,ale opłacało się :)

 

EDIT

 

Dałem nowego linka (poprawiłem jeszcze to wyświetlanie poprawnej linii ,czasem nawias był pusty)

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

Nie wiem czym to jest powodowane ,ale napawilem pewien błąd i dodałem nowe archiwum w sięć .Sprawdzałem czy działa i działa .Pamiętać ,ze odświeżam tylko link w głównym poście.

 

@Wo7 : Spróbuj teraz

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

Poprawiłem pewien bajer z obliczaniem i podawanie danych (procki readln i read). Usprawniłem mechanizm podawania parametrów (nie sypie sie jeśli w oknie wpiszemy 2,2 - przedtem interpreter walił błąd ,że za dużo argumentów ,teraz działa już poprawnie)

 

Link w głównym poście :)

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

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...