Kostasgsx Δημοσ. 23 Μαΐου 2011 Δημοσ. 23 Μαΐου 2011 Καλησπέρα σε όλους! Μου έχουν αναθέσει στην σχολή μια άσκηση,χωρίς όμως να μου έχουν διδάξει τον τρόπο.Η Ασκηση-Project είναι : Προσοµοίωση της εντολής “MOVE” µε πρόγραµµα σε γλώσσα C µε συµπερίληψη όλων των δυνατών επιλογών (options) της αρχικής εντολής του DOS. Οι κύριοι αυτοί λοιπόν μας έβαλαν αυτή την εργασία χωρίς όμως να μας έχουμε πει ποια είναι η εντολή για να μετακινείς αρχεία μέσω της C!Όποιος μπορεί να βοηθήσει παρακαλώ ας μου στείλει κάποιο μήνυμα ή ας παραθέσει τον κώδικα από κάτω σε σχόλιο. Όλες οι επιλογές! Στην εικόνα αυτή μπορείτε να δείτε τι κάνει η Move και ποιες είναι όλες οι δυνατές επιλογές της! Ευχαριστώ προκαταβολικά!
parsifal Δημοσ. 24 Μαΐου 2011 Δημοσ. 24 Μαΐου 2011 Δεν υπάρχει εντολή στη C για να μετακινείς αρχεία. Υπάρχουν όμως μερικές συναρτήσεις που περιλαμβάνει η βιβλιοθήκη stdio.h και μπορούν να σε βοηθήσουν να προσομοιώσεις τη λειτουργικότητα που παρέχει η move. Συγκεκριμένα, δες τις συναρτήσεις rename και remove.
Kostasgsx Δημοσ. 24 Μαΐου 2011 Μέλος Δημοσ. 24 Μαΐου 2011 Μήπως μπορείς να παραθέσεις ένα κώδικα που να ικανοποιεί την άσκηση αυτή;Και ίσως με κάποια σχόλια στον κώδικα αυτό για να καταλάβω τι γίνεται ακριβώς;
parsifal Δημοσ. 24 Μαΐου 2011 Δημοσ. 24 Μαΐου 2011 Αυτό που ζητάς είναι να σου παραδώσω έτοιμη τη λύση της άσκησης χωρίς εσύ να ιδρώσεις καθόλου. Ή να έχεις δείξει τουλάχιστον κάποιον κώδικα που να δείχνει ότι το προσπάθησες έστω και λίγο και κάπου κόλλησες. Εγώ προσωπικά δε δέχομαι να κάνω κάτι τέτοιο. Θα πρέπει να περιμένεις απάντηση από κάποιο άλλο μέλος που δεν έχει τέτοιους ηθικούς ενδοιασμούς...
mtsouk Δημοσ. 24 Μαΐου 2011 Δημοσ. 24 Μαΐου 2011 Ξεκίνα σιγά-σιγά την υλοποίηση. Πρώτα υποστήριξη των παραμέτρων και μετά υλοποίηση των επιμέρους λειτουργιών. Δεν είναι τόσο δύσκολο όσο φαίνεται. φιλικά,
dimitris_pa Δημοσ. 24 Μαΐου 2011 Δημοσ. 24 Μαΐου 2011 δεν μπορείτε να χρησιμοποιήσετε μέσα στην C εντολές της κονσόλας ? off-topic ωραίους πληροφοριακούς βγάζουμε.......
nilosgr Δημοσ. 24 Μαΐου 2011 Δημοσ. 24 Μαΐου 2011 δεν μπορείτε να χρησιμοποιήσετε μέσα στην C εντολές της κονσόλας ? Μαλλον θα θεωριθει "cheating" αν εβαζε αντολες σε κονσολα μεσα απ το προγρμμά του. Παντως, ναι γινεται με τη συναρτιση system() που περνει ως argument ενα string, που ειναι αυτο που θα εγραφες στον κονσολα off-topic ωραίους πληροφοριακούς βγάζουμε....... Και βαζουμε... στα σπιτια μας και μας "φτιαχνουν" τους υπολογιστες...
dimitris_pa Δημοσ. 24 Μαΐου 2011 Δημοσ. 24 Μαΐου 2011 Μαλλον θα θεωριθει "cheating" αν εβαζε αντολες σε κονσολα μεσα απ το προγρμμά του. Παντως, ναι γινεται με τη συναρτιση system() που περνει ως argument ενα string, που ειναι αυτο που θα εγραφες στον κονσολα Και βαζουμε... στα σπιτια μας και μας "φτιαχνουν" τους υπολογιστες... με την system εννοούσα.... off-topic υποτίθεται ότι πρέπει να γνωρίζουν και να κάνουν πάρα πάνω πράγματα από το να ξέρουν να φτιάχνουν έναν υπολογιστή, μόνο περιπου 10 άτομα από τα 100 είναι ζήτημα αν μπορούν να σου φτιάξουν το pc χωρίς φορματ η να στο αλλάξουν όλο.... φιλικά πάντα.
Kostasgsx Δημοσ. 24 Μαΐου 2011 Μέλος Δημοσ. 24 Μαΐου 2011 δεν μπορείτε να χρησιμοποιήσετε μέσα στην C εντολές της κονσόλας ? off-topic ωραίους πληροφοριακούς βγάζουμε....... Αυτό θεωρείται cheating,λες να μην το σκέφτηκα; Αυτό που ζητάς είναι να σου παραδώσω έτοιμη τη λύση της άσκησης χωρίς εσύ να ιδρώσεις καθόλου. Ή να έχεις δείξει τουλάχιστον κάποιον κώδικα που να δείχνει ότι το προσπάθησες έστω και λίγο και κάπου κόλλησες. Είδα την Rename και την Remove,απλά επειδή δεν έχουμε ασχοληθεί με αρχεία στην C δεν ξέρω πως να ζητήσω το όνομα του αρχείου ..ή αν π.χ. το ζητήσω ως string από τον χρήστη τότε θα δουλέψει; Ξέρω πως ακούγεται γελοίο,αλλά δεν μας έχουν διδάξει τον τρόπο ενώ μας ζητάνε να το υλοποιήσουμε!Μπορείς έστω να μου δώσεις μια καθοδήγηση; π.χ. : 1.Να ζητάει από τον χρήστη το όνομα του αρχείου που θέλει να κάνει move. 2.Μετά να κάνει move-rename με τον κώδικα που δίνει η σελίδα. 3.Και τέλος να κάνει remove το αρχικό αρχείο με τον κώδικα που δίνει η σελίδα. Υ.Γ.: Πώς ζητάς το path από τον χρήστη;
MitsakosGR Δημοσ. 24 Μαΐου 2011 Δημοσ. 24 Μαΐου 2011 Αν σας έχουν μάθει να διαβάζετε και να γράφετε αρχεία τότε μπορείς απλά να κάνεις αυτά τα βήματα: 1. Διαβάζεις το αρχείο στην μνήμη 2. Γράφεις τα δεδομένα του αρχείου στην καινούργια θέση 3. Διαγράφεις το παλιό αρχείο. Δεν ξέρω αν υπάρχει και πιο γρήγορος τρόπος από αυτά τα τρία βήματα αλλά εμένα αυτό μου ήρθε τώρα...
gtroza Δημοσ. 25 Μαΐου 2011 Δημοσ. 25 Μαΐου 2011 Υ.Γ.: Πώς ζητάς το path από τον χρήστη; το δίνεις στη "σύνταξη" της εντολής project_Astakos_move /Katar/kefalaia/ena_tris.euro /Perhfanh_Ellas/exoun_lamvanein/misc/ena_tris.eu ^_όνομα_εντολής_σου_^ ^_από_πηγή_άντλησης_ων_πόρων_^ ^_σε_προορισμό_για_κατανάλωση_των_πόρων_^ άν τα θέλεις όλα τα..αρχεία project_Astakos_move /Katar/kefalaia/*.euro /Perhfanh_Ellas/exoun_lamvanein/misc/ καλή επιτυχία κώστα καί χρόνια πολλά! _ttp://en.wikipedia.org/wiki/C_syntax < Command-line arguments _ttp://en.wikipedia.org/wiki/Rename_© _ttp://en.wikipedia.org/wiki/Remove_© βάλε h στη θέση του _ είδες την move του dos στο "φυσικό" της περιβάλλον ή μόνο απο το screenshot που μας παρέθεσες ; δεν είμαι προγραμματιστής! .
Directx Δημοσ. 25 Μαΐου 2011 Δημοσ. 25 Μαΐου 2011 Πριν μερικά χρόνια είχε τεθεί το ίδιο ερώτημα στο παρόν φόρουμ. Τότε είχα δημοσιεύσει μια απλή λύση η οποία έλυνε εν μέρη το κύριο ζητούμενο του ερωτήματος με μια όσο το δυνατόν πιο βατή (naive) μεθοδολογία (με διάφορα μειονεκτήματα που όμως ίσως σου δώσει μια ιδέα για το τι πρέπει περίπου να κάνεις) ενώ είχαν προταθεί φυσικά και άλλες λύσεις. Βέβαια πλήρης απάντηση δεν δόθηκε τότε καθώς η εξομοίωση όλων των δυνατοτήτων της εντολής MOVE του DOS είναι μια πολύπλοκη διαδικασία που οπωσδήποτε δεν μπορεί να αναλυθεί πλήρως εδώ και που αμφιβάλλω αν μπορεί να υποστηριχθεί σε μια πιθανή εξέταση (έστω και αν αναρτηθεί από κάποιον έτοιμη) αν δεν έχεις ικανή γνώση του διαπραγματευόμενου αντικειμένου. Συνεπώς, πρέπει να ασχοληθείς αφ' εαυτού με το ζήτημα και βάση της διδαχθείσας ύλης να δοκιμάσεις να το "βγάλεις".
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.