Κυριακή 24 Οκτωβρίου 2021

Αναθεώρηση 33 Έκδοση 10 (και λίγα λόγια για τις 31 και 32)

Αναθεώρηση 33

Μπορούμε να έχουμε συντομεύσεις που καλούν το m2000.exe, και να βάλουμε διακόπτες καθώς και ένα αρχείο. Πχ το -sbl που κάνει να εμφανίζονται με αριθμούς -1 και 0 οι λογικοί (boolean), μπορεί να είναι:

1. Mετά το όνομα του εκτελέσιμου (m2000.exe) , μπορούν να είναι αρκετοί διακόπτες όχι μόνο ένας. Οι διακόπτες είναι με - και με +, εδώ έχουμε το -sbl αλλά θα μπορούσαμε να είχαμε το +sbl. Δες παρακάτω στα περί της αναθεώρησης 31 τι παίζει!

μονοπάτι\m2000.exe -sbl

2. Mετά από συγκεκριμένο αρχείο που θέλουμε να ανοίγει η συντόμευση:

μονοπάτι\m2000.exe "μονοπάτιΑρχείου\αρειο.gsb" -sbl

Σε αυτήν την περίπτωση αν ρίξουμε πάνω στην συντόμευση άλλο αρχείο gsb θα παίξει αυτό που ρίξαμε με τους διακόπτες που έχουμε βάλει.

3. Μεταξύ εκτελέσιμου αρχείου και αρχείου που θέλουμε να ανοίξει το εκτελέσιμο, αν δεν έχουμε διαστήματα στο μονοπάτι δεν χρειάζονται τα εισαγωγικά. Τα Windows  10 βάζουν εισαγωγικά μόνο όταν υπάρχει διάστημα:

μονοπάτι\m2000.exe -sbl "μονοπάτιΑρχείου με διαστήματα\αρειο.gsb"

μονοπάτι\m2000.exe -sbl μονοπάτιΑρχείου\αρειο.gsb

Ισχύει το εξής:

Αν θέλουμε αντιγράφουμε σε ένα φάκελο τα m2000.exe και m2000.dll. Μπορούμε να έχουμε φτιάξει ένα πρόγραμμα και να το έχουμε σώσει έτσι: Σώσε myApp @, {StartModule: End}

Βάζουμε το myApp.gsb στο φάκελο, αλλάζουμε το m2000.exe σε myApp.exe και το m2000.dll αν θέλουμε σε lib.bin. Τώρα όταν ξεκινάμε το myApp.exe τρέχει αμέσως το MyApp.gsb (που είναι κρυπτογραφημένο) και αυτό γίνεται με άμεση σύνδεση με το τοπικό lib.bin (m2000.dll). Έτσι μπορούμε να έχουμε προγράμματα που ξέρουμε ότι δουλεύουν με μια έκδοση της Μ2000 και θα τρέχουν με αυτήν, ακόμα και αν έχουμε αλλάξει την έκδοση που έχει εγκατασταθεί τελευταία.

Υπάρχει τρόπος με την εντολή ICON να αλλάξουμε το εικονίδιο της εφαρμογής την ώρα που τρέχει το myApp.exe. Αλλά το καλύτερο είναι αν έχουμε την Vιsual Βasic 6, να ανοίξουμε το mexe.vbp και να αλλάξουμε το εικονίδιο της φόρμας frmAbout (απαιτείται τύπος ico, 8bit χρώμα, 16X16, 48X48, όχι png). Και πάλι χρειάζεται η εντολή ICON για να αλλάξει το εικονίδιο και το msgbox της M2000. Η διαφορά είναι ότι το αρχείο myApp.exe θα έχει το εικονίδιο της δικής μας εφαρμογής όχι της Μ2000.


Αναθεώρηση 32

Διορθώθηκε η δομή Επανέλαβε Πάντα (και Επανάλαβε Πάντα). Έπαιζε στην αγγλική έκδοση Do Always ή Repeat Always, αλλά στην ελληνική μόνο αν είχαμε τις αγκύλες (Επανέλαβε { } Πάντα ή Επανάλαβε {} Πάντα).

Αναθεώρηση 31

Εδώ έγινε μια δουλειά που είχα αφήσει στην Αναθεώρηση 30:

1. Πολύπλοκη χρήση των συναρτήσεων τύπου # για τους αυτόματους πίνακες ή  

Τμήμα ΤμήμαΈνα (α$){
      Πρόχειρο α$
}
ΤμήμαΈνα (("Μ","Ο","Σ","Δ")#Ταξινόμηση()#Γραφή$(", "),1,2,3,4,5,6,7,8,9, ("Τ","Ε","Χ","Ν")#Ταξινόμηση()#Γραφή$(", "))#Γραφή$("-")
Τύπωσε Πρόχειρο$


Ρου1((("Μ","Ο","Σ","Δ")#Ταξινόμηση()#Γραφή$(", "),1,2,3,4,5,6,7,8,9, ("Τ","Ε","Χ","Ν")#Ταξινόμηση()#Γραφή$(", "))#Γραφή$("-"))
Έλεγχος((("Μ","Ο","Σ","Δ")#Ταξινόμηση()#Γραφή$(", "), 1,2,3,4,5,6,7,8,9, ("Τ","Ε","Χ", "Ν")#Ταξινόμηση()#Γραφή$(", "))#Γραφή$("-")=Πρόχειρο$, (("Μ","Ο","Σ","Δ")#Ταξινόμηση()#Γραφή$(", "), 1,2,3,4,5,6,7,8,9, ("Τ","Ε","Χ", "Ν")#Ταξινόμηση()#Γραφή$(", "))#Γραφή$("-")=Πρόχειρο$)


Ρουτίνα Ρου1(α$)
      Πρόχειρο α$
Τέλος Ρουτίνας
Ρουτίνα Έλεγχος(α, β)
      Τύπωσε α, β
Τέλος Ρουτίνας

Έξοδος:

Δ, Μ, Ο, Σ-1-2-3-4-5-6-7-8-9-Ε, Ν, Τ, Χ

Αληθές Αληθές

Το Αληθές εμφανίζεται αν έχουμε το +SBL ως κρατημένος διακόπτης και αν έχουμε επιλογή GREEK στις Ρυθμίσεις  CTRL+U (υπάρχει και σαν εντολή και ρυθμίζει την γλώσσα των μηνυμάτων λάθους). Αν αλλάξουμε σε Latin θα δίνει True. Αν δώσουμε στη κονσόλα (ή με Θέσε μπροστά σε τμήμα) το Switches "-SBL" τότε θα πάρουμε -1 -1 (όπου το -1 είναι η αξία του Αληθές). H M2000 κοιτάει το 0 ως FALSE, ή Ψευδής ή Ψευδές, οπότε μια μη μηδενική τιμή είναι αληθής. Προσοχή στο Αν$() και Αν() (συναρτήσεις if() και if$()) όπου επειδή εκεί παίζει ρόλο το νούμερο θα πρέπει να δώσουμε σύγκριση (οι συγκρίσεις γυρνούν Boolean Λογικό). Πχ το if(k->1+1, 2+3, 3+5, 4+6)  αν το k=1 θα εκτελέσει μόνο την πρώτη παράσταση 1+1 (οι άλλες δεν θα εκτελεστούν). Στο if(k->100, 50) αν το k είναι -1 θα δώσει το 100 (αληθής), αν το k=0 θα δώσει 50 ψευδής, αλλά αν το k δεν είναι -1 και δεν είναι 0 τότε θα δώσει 0. Δηλαδή δίνει Αληθής μόνο όταν έχουμε -1 (ή boolean True που είναι το -1 σε αξία).

Με την εντολή Έλεγχος στην κονσόλα βλέπουμε τους διακόπτες (+ ενεργός - ανενεργός). Με Βοήθεια Διακόπτες βλέπουμε τι επιλογές έχουμε (εξηγούνται οι διακόπτες). Οι διακόπτες μπορούν να δοθούν στη λεγόμενη command line, δηλαδή κάνουμε μια συντόμευση του m2000.exe και γράφουμε. Οι αλλαγές θα είναι τοπικές για την συγκεκριμένη εκτέλεση.sbl. Φτιάχτηκε στην αναθεώρηση 33  η δυνατότητα να έχουμε τους διακόπτες στη command line (μέσω συντόμευσης) είτε πριν το όνομα είτε μετά.


2. Χρήση των #Συναρτήσεων για touple ή αυτόματους πίνακες, όταν επιστρέφονται ως τιμή ομάδας (αντικείμενο της Μ2000). Εδώ σε μερικές παραλλαγές, το αποτέλεσμα είναι 4 σε κάθε περίπτωση.

Κλάση αλφα {
      Αξια (χ) {
            =(1,2,3,4,5)#Μέρος(χ,3)
      }
}
ΜιαΛάμδα=Λάμδα κ=αλφα() (χ)-> {
      =κ(χ)
}


Τύπωσε ΜιαΛάμδα(1)#τιμή(2)


ΜιαΛάμδα=Λάμδα κ=αλφα() (χ)-> {
      =κ(χ)#τιμή(2)
}


Τύπωσε ΜιαΛάμδα(1)


Κλάση αλφα {
      Αξια {
            =(1,2,3,4,5)
      }
}


ΜιαΛάμδα=Λάμδα κ=αλφα() (χ)-> {
      =κ#Μέρος(χ,3)
}


Τύπωσε ΜιαΛάμδα(1)#τιμή(2)


ΜιαΛάμδα=Λάμδα κ=αλφα() -> {
      =κ
}


Τύπωσε ΜιαΛάμδα()#Μέρος(1,3)#τιμή(2)


Τύπωσε ΜιαΛάμδα() ' 1 2 3 4 5

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

You can feel free to write any suggestion, or idea on the subject.