simosx έγραψε:
Αν δεν κάνω λάθος, με χρήση της ncurses είναι πιο εύκολο να φορτώσεις τμηματικά ένα τεράστιο αρχείο, σε αντίθεση με κάποιο GUI, όπου πρέπει να βάλεις όλο το αρχείο σε ένα έτοιμο γραφικό συστατικό.
Για το συγκεκριμένο θα σε γελάσω Σίμο, δεν θυμάμαι. Κανονικά πάντως δεν πρέπει να φορτώνω όλο το αρχείο μονομιάς στη μνήμη, ούτε μονοκόμματα ούτε τμηματικά (ανεξάρτητα από τα γραφικά δηλαδή).
Η χρυσή τομή για το άνοιγμα μεγάλων αρχείων, μιλώντας πάντα για στάνταρ C, είναι να βάζει το πρόγραμμα ένα buffer με fixed μέγεθος, και να φορτώνει κάθε φορά μονάχα τόσα bytes από το αρχείο. Δηλαδή αν π.χ έχουμε ένα buffer 100Mb κι ένα αρχείο 1Gb, τότε φορτώνουμε και δείχνουμε αρχικά στον χρήστη τα πρώτα 100Mb, όταν μας πει να μετακινηθούμε σε άλλη θέση, εκτός ορίου του fixed buffer μας, τότε υπολογίζουμε ποιο τμήμα του αρχείου αντιστοιχεί στη νέα θέση και πάμε και το φορτώνουμε στο buffer και το δείχνουμε, και πάει λέγοντας.
Έτσι ανοίγεις όντως αρχεία απεριόριστου μεγέθους, σχεδόν ανεξάρτητα από τη διαθέσιμη μνήμη του συστήματος. Αυτό όμως θέλει πολλή προγραμματιστική δουλειά! Είναι όμως στα υπόψη, ως τελευταίο-τελευταίο feature (στο τέλος δηλαδή, αφού έχω φτιάξει πρώτα έναν λειτουργικό viewer... κι έτσι όπως το πάω μάλλον θα τον κάνω και editor στο τέλος

)