Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 10 odgovora
  • 3.086 pregleda

Najnovija ↓

Qt i QBASIC kompajler 07.09.2011. u 23:30 · pre 184 meseca #1
Pravim nesto kao IDE za BASIC i naisao sam na problem......Da li mogu da koristim QBASIC kompajler i kako da kompajlira kod iz TextEdit kontrole?........predpostavljam da bih trebao nekako da redirectujem ulaz na bc.exe ?......hvala :)
Potpis
while(I->AmAlive()){
I->DoSomeProgramming();
}
Re: Qt i QBASIC kompajler 08.09.2011. u 10:06 · pre 184 meseca #2
Koristi koji god hoćeš kompajler. Kod snimi u neki privremeni *.bas fajl, pa pozovi regularno kompajliranje. Preporučujem upotrebu QProcess klase da bi dobio poruke kompajlera o greškama.
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: Qt i QBASIC kompajler 09.09.2011. u 23:35 · pre 184 meseca
izmenjeno 1 put, poslednji put 2paca.zwaka 10.09.2011. u 00:00
  1. 2paca.zwaka10.09.2011. u 00:00zapis iz teksta poruke
#3
E redirectovao sam input stream sada mi samo treba mala pomoc......
u BASIC kompajleru koji koristim da bi se napravio *.obj fajl treba uneti tri linije....Moj kod je :
Code:

QProcess p;
    p.start("c:\\qb\\bc.exe");

    p.write("c:\\q.bas"); // lokacija nekog .bas fajla
    p.write("\n");          // upisivanje prazne linije (enter)
    p.write("\n");
    p.closeWriteChannel();

    QMessageBox::warning(q,"Readed",p.readAll());



Medjutim program izbaci praznu MessageBox i onda postaje 'not responding'


sta je greska ako moze mala pomoc ? hvala



izmena :

Code:

 p.start("c:\\qb\\BC.exe");
    if (!p.waitForStarted())
             return;

    p.write("c:\\q.bas");
    p.waitForBytesWritten();
    p.write("\n");
    p.waitForBytesWritten();
    p.write("\n");
    p.waitForBytesWritten();
    p.closeWriteChannel();
    p.waitForFinished();


Ovo je stabilno ali o5 ne radi ono sto treba
Potpis
while(I->AmAlive()){
I->DoSomeProgramming();
}
Re: Qt i QBASIC kompajler 09.09.2011. u 23:42 · pre 184 meseca #4
Ako komandna linija za kompajliranje glasi

c:\qb\bc.exe c:\q.bas


Onda ti treba ovakav kod:

Code:
QProcess p;

p.setNativeArguments("c:\\q.bas");
p.start("c:\\qb\\bc.exe");
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: Qt i QBASIC kompajler 10.09.2011. u 14:12 · pre 184 meseca
izmenjeno 1 put, poslednji put 2paca.zwaka 10.09.2011. u 14:51
  1. 2paca.zwaka10.09.2011. u 14:51zapis iz teksta poruke
#5
Hvala na odgovoru ali kada to unesem u cmd
pokrene bc.exe i trebam da unesem 3 prazne linije i dobijem odgovor od kompajlera.......pocetnik sam sto se tice QT i ako moze da mi pomognes oko celog koda......
Code:

    QProcess p;
    p.setNativeArguments("c:\\q.bas");
    p.start("c:\\qb\\bc.exe");

    p.waitForStarted();

    p.waitForReadyRead();

    QMessageBox::warning(this,"De",p.readAll().toLower()); //Ovo obavestenje ne pokazuje nista (prazan mb)

    p.waitForBytesWritten();
    p.write("");
    p.waitForBytesWritten();
    p.write("");
    p.waitForBytesWritten();
    p.write("");
    p.closeWriteChannel();

    p.waitForFinished();



Hvala unapred
Potpis
while(I->AmAlive()){
I->DoSomeProgramming();
}
Re: Qt i QBASIC kompajler 11.09.2011. u 00:08 · pre 184 meseca #6
Ako je tako, onda

Code:
QProcess p;

p.start("c:\\qb\\bc.exe");
p.write("\n\n\n");
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: Qt i QBASIC kompajler 11.09.2011. u 00:54 · pre 184 meseca #7
Zalim ali ne radi ni to :/
Potpis
while(I->AmAlive()){
I->DoSomeProgramming();
}
Re: Qt i QBASIC kompajler 12.09.2011. u 00:02 · pre 184 meseca #8
Ne radi zato što mi nisi dao dobro uputstvo za bc.

Dakle,

Code:
QProcess p;

p.start("c:\\qb\\bc.exe");
p.write("c:\\q.bas\n\n\n");
p.waitForFinished(-1);
p.start("c:\\qb\\link.exe");
p.write("c:\\q.obj\n\n\n");
p.waitForFinished(-1);
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: Qt i QBASIC kompajler 12.09.2011. u 14:17 · pre 184 meseca #9
Stvarno, zvuci kao zezanje ali ni ovo ne radi :d, nzm sta cu sada....Da li radi tebi?
Potpis
while(I->AmAlive()){
I->DoSomeProgramming();
}
Re: Qt i QBASIC kompajler 12.09.2011. u 14:49 · pre 184 meseca #10
Kada stignem kući probaću. Priznajem da sam okačio netestiran kod.
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: Qt i QBASIC kompajler 13.09.2011. u 11:02 · pre 184 meseca #11
Znam u čemu je problem.

Sa processStart ćeš ti lepo da pokreneš proces, ali funkcije vezane za read i write jednostavno neće raditi zato što je BC.EXE stari DOS program, koji ima standardni ulaz i izlaz preko DOS funkcija. Rešenje je da potražiš način da kompajliraš program zadavanjem parametara iz komandne linije tako da te BC više ništa ne pita u toku svog rada.

Sada sam na 64-bitnoj mašini sa kojom BC.EXE niej kompatibilan, tj. ne može se pokrenuti pod njom, ali pokušaj da napraviš input fajl sa potrebnim ulazom (uključujući i enter-e), pa da pokreneš program sa BC < input.

No, još bolje rešenje je da se maneš tog DOS kompajlera i uzmeš nešto friškije, a ima danas besplatnih BASIC kompajlera za Windows, koji su u većoj ili manjoj meri kompatibilni sa QuickBASIC-om. To je moja najtoplija preporuka.
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme