Βοήθεια για άνοιγμα αρχείων κειμένου από πρόγραμμα σε C  Το θέμα επιλύθηκε

...IDE, compilers, κλπ

Συντονιστής: konnn

Βοήθεια για άνοιγμα αρχείων κειμένου από πρόγραμμα σε C

Δημοσίευσηαπό ph03nix » 09 Δεκ 2010, 18:38

Γεια χαρά.Θέλω να γράψω αρχικά ένα πρόγραμμα σε C που να διαβάζει αρχεία κειμένου.Αφού δώσω πρώτα από το τερματικό εγώ το directory κ το όνομα του αρχείου.Έψαξα στο διαδίκτυο κ βρήκα πως η συνάρτηση που πρέπει να χρησιμοποιήσω είναι η fopen() όμως δεν μπορώ να βρω καλές πληροφορίες στο πως να την συντάξω.έστω ότι έχω το kalimera.txt στο /home/user/ πως θα έπρεπε να συντάξω την συνάρτηση? :S


Off topic:
επίσης μία ακόμα ερώτηση: τα srt files αντιμετωπίζονται σαν txt files από την C?
Γνώσεις ⇛ Linux:Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό : Desktop :OpenBSD 5.0 -current|Acer Laptop: Ubuntu 10.10 32bit|IBM Thinkpad X60 Laptop:OpenBSD 4.9 -stable.

OpenBSD,security matters.

Άβαταρ μέλους
ph03nix
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 338
Εγγραφή: 14 Μάιος 2009, 00:56
Τοποθεσία: Athens-Chania(σπουδες)
Εκτύπωση

Re: Βοήθεια για άνοιγμα αρχείων κειμένου από πρόγραμμα σε C

Δημοσίευσηαπό simosx » 09 Δεκ 2010, 19:47

ph03nix έγραψε:Γεια χαρά.Θέλω να γράψω αρχικά ένα πρόγραμμα σε C που να διαβάζει αρχεία κειμένου.Αφού δώσω πρώτα από το τερματικό εγώ το directory κ το όνομα του αρχείου.Έψαξα στο διαδίκτυο κ βρήκα πως η συνάρτηση που πρέπει να χρησιμοποιήσω είναι η fopen() όμως δεν μπορώ να βρω καλές πληροφορίες στο πως να την συντάξω.έστω ότι έχω το kalimera.txt στο /home/user/ πως θα έπρεπε να συντάξω την συνάρτηση? :S
Off topic:
επίσης μία ακόμα ερώτηση: τα srt files αντιμετωπίζονται σαν txt files από την C?


Πρέπει να αναφέρει τις λεπτομέρειες το βιβλίο της σχολής σου, στο κεφάλαιο Εισόδου/Εξόδου (Input/Output). Αναφέρεις ότι γνωρίζεις καλά αγγλικά, οπότε έχεις τη δυνατότητα και για πρόσβαση και σε ακόμα περισσότερα βιβλία.

Τα αρχεία .srt περιέχουν κείμενο οπότε τα διαβάζεις ως αρχεία κειμένου. Υπάρχει το ζήτημα ότι πολλά αρχεία .srt έχουν κωδικοποίηση μη-Unicode· ανάλογα με το τι θέλεις να κάνεις, μπορεί να χρειαστεί να κάνει μετατροπή/διόρθωση κωδικοποίησης. Κάτι που λείπει είναι ένας αλγόριθμος για τον αυτόματο εντοπισμό της κωδικοποίησης ενός αρχείου κειμένου.

Ωστόσο, το βασικό σου μέλημα είναι να μάθεις ο ίδιος το πως χρησιμοποιείς τη C με αρχεία. Πίεσε τον εαυτό σου για να το μάθεις μόνος σου, με τα βιβλία που έχεις ήδη. Αν το καταφέρεις αυτό, θα υπάρχει πιθανότητα να προσφέρεις κάτι πίσω στην κοινότητα.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Βοήθεια για άνοιγμα αρχείων κειμένου από πρόγραμμα σε C

Δημοσίευσηαπό ph03nix » 09 Δεκ 2010, 20:14

Δυστυχώς το έχω χάσει το βιβλίο της σχολής!Ναι γνωρίζω καλά αγγλικά αλλά ήθελα βοήθεια αρχικά να φτιάξω ένα πολύ απλό πρόγραμμα για να καταλάβω πως δουλεύει το όλο θέμα!Τελικά στο youtube βρήκα κάτι ψιλά.Αυτό που θέλω να φτιάξω είναι ένα προγραμματάκι που να μ ζητάει ένα directory,να το δίνω κ στη συνέχεια να δίνω το όνομα του srt αρχείου σ'αυτό το dir και να μετατρέπει τους ελληνικούς υπότιτλους σε greeklish!(Ξέρω είναι άχρηστο το πρόγραμμα απλά το φτιάχνω για να πειραματιστώ λιγάκι :D).Αλλά απ'ότι κατάλαβα από αυτά που μ λες πρέπει να φτιάξω πρώτα μία συνάρτηση που να ελέγχει την κωδικοποίηση κ να την μετατρέπει σε unicode αν είναι απαραίτητο!σωστά?

Τώρα όσον αφορά την προσφορά μ στη κοινότητα νομίζω είναι λιγάκι νωρίς για μένα!έχω πολύ δρόμο για κάτι τέτοιο :P
Γνώσεις ⇛ Linux:Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό : Desktop :OpenBSD 5.0 -current|Acer Laptop: Ubuntu 10.10 32bit|IBM Thinkpad X60 Laptop:OpenBSD 4.9 -stable.

OpenBSD,security matters.

Άβαταρ μέλους
ph03nix
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 338
Εγγραφή: 14 Μάιος 2009, 00:56
Τοποθεσία: Athens-Chania(σπουδες)
Εκτύπωση

Re: Βοήθεια για άνοιγμα αρχείων κειμένου από πρόγραμμα σε C  Το θέμα επιλύθηκε

Δημοσίευσηαπό simosx » 09 Δεκ 2010, 20:33

Μια αναζήτηση στο Google για C Programming book εμφανίζει πάρα πολλά αποτελέσματα.

Πιστεύω ότι το καλύτερο από αυτά είναι το wikibook,
http://en.wikibooks.org/wiki/C_Programming
Οπότε δεν έχεις πια πρόβλημα βιβλίου. Το Youtube δε βοηθάει πολύ για να μάθεις προγραμματισμό.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Βοήθεια για άνοιγμα αρχείων κειμένου από πρόγραμμα σε C

Δημοσίευσηαπό ph03nix » 09 Δεκ 2010, 20:37

Ωωωω σ'ευχαριστώ!Πάω να το ψάξω :D :geek:
edit:αυτό που σε ρώτησα για την κωδικοποίηση ισχύει?ξέρεις?
Γνώσεις ⇛ Linux:Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό : Desktop :OpenBSD 5.0 -current|Acer Laptop: Ubuntu 10.10 32bit|IBM Thinkpad X60 Laptop:OpenBSD 4.9 -stable.

OpenBSD,security matters.

Άβαταρ μέλους
ph03nix
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 338
Εγγραφή: 14 Μάιος 2009, 00:56
Τοποθεσία: Athens-Chania(σπουδες)
Εκτύπωση

Re: Βοήθεια για άνοιγμα αρχείων κειμένου από πρόγραμμα σε C

Δημοσίευσηαπό simosx » 09 Δεκ 2010, 21:09

ph03nix έγραψε:Ωωωω σ'ευχαριστώ!Πάω να το ψάξω :D :geek:
edit:αυτό που σε ρώτησα για την κωδικοποίηση ισχύει?ξέρεις?


Ξαναρώτησε για την κωδικοποίηση μόλις φθάσεις στο σημείο αυτό. Είναι κάτι που μπορεί να χρειαστεί να αντιμετωπίσεις, οπότε δεν είναι άμεσο ζήτημα.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Βοήθεια για άνοιγμα αρχείων κειμένου από πρόγραμμα σε C

Δημοσίευσηαπό ph03nix » 15 Δεκ 2010, 01:18

Φίλε simo θα χρειαστώ πάλι την βοήθεια σ...

Έστω ότι έχουμε το παρακάτω προγραμματάκι για να κάνουμε read το αρχείο animalist.txt που είναι στον ίδιο φάκελο που εκτελείται και το πρόγραμμα :

Κώδικας: Επιλογή όλων
#include<stdio.h>

int main()
{ FILE *f;
f=fopen("animalist.txt","r");
getchar();

return 0;
}


Το θέμα είναι ότι δεν μ κάνει read το αρχείο.Δεν μ βγάζει σφάλμα: απλά μία μπάρα που αναβοσβήνει κ απλά πατάω ctrl+c για να σταματήσει να εκτελείται το πρόγραμμα μου.
Επίσης δεν θέλω το πρόγραμμα που γράφω να περίοριζεται σ'ένα directory κ ένα αρχείο .Θέλω να κάνω εγώ navigate πρώτα,μετά ls για να μ δείχνει ποια αρχεία υπάρχουν στο dir κ στην συνέχεια να διαλέγω ποιο θα κάνει read ή οτιδήποτε άλλο.Έψαξα κ βρήκα ότι για να χρησιμοποιήσεις εντολές όπως οι ls,pwd κλπ χρησιμοποιείς την συνάρτηση system κ την header stdlib!Αλλά δεν ξέρω πως να τις συνδυάσω!
Στο ebook που έδωσες δεν μπορώ να βρω απάντηση σ'αυτά τα ερωτήματα. :/
Γνώσεις ⇛ Linux:Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό : Desktop :OpenBSD 5.0 -current|Acer Laptop: Ubuntu 10.10 32bit|IBM Thinkpad X60 Laptop:OpenBSD 4.9 -stable.

OpenBSD,security matters.

Άβαταρ μέλους
ph03nix
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 338
Εγγραφή: 14 Μάιος 2009, 00:56
Τοποθεσία: Athens-Chania(σπουδες)
Εκτύπωση

Re: Βοήθεια για άνοιγμα αρχείων κειμένου από πρόγραμμα σε C

Δημοσίευσηαπό konnn » 15 Δεκ 2010, 19:35

Σε ποιά μεταβλητή αποδίδεις τη κάθε τιμή που διαβάζει η getchar??Πρέπει να δημιουργήσεις μια και με printf να τη δεις.
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3568
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση

Re: Βοήθεια για άνοιγμα αρχείων κειμένου από πρόγραμμα σε C

Δημοσίευσηαπό simosx » 15 Δεκ 2010, 20:02

ph03nix έγραψε:Φίλε simo θα χρειαστώ πάλι την βοήθεια σ...

Έστω ότι έχουμε το παρακάτω προγραμματάκι για να κάνουμε read το αρχείο animalist.txt που είναι στον ίδιο φάκελο που εκτελείται και το πρόγραμμα :

Κώδικας: Επιλογή όλων
#include<stdio.h>

int main()
{ FILE *f;
f=fopen("animalist.txt","r");
getchar();

return 0;
}


Το θέμα είναι ότι δεν μ κάνει read το αρχείο.Δεν μ βγάζει σφάλμα: απλά μία μπάρα που αναβοσβήνει κ απλά πατάω ctrl+c για να σταματήσει να εκτελείται το πρόγραμμα μου.
Επίσης δεν θέλω το πρόγραμμα που γράφω να περίοριζεται σ'ένα directory κ ένα αρχείο .Θέλω να κάνω εγώ navigate πρώτα,μετά ls για να μ δείχνει ποια αρχεία υπάρχουν στο dir κ στην συνέχεια να διαλέγω ποιο θα κάνει read ή οτιδήποτε άλλο.Έψαξα κ βρήκα ότι για να χρησιμοποιήσεις εντολές όπως οι ls,pwd κλπ χρησιμοποιείς την συνάρτηση system κ την header stdlib!Αλλά δεν ξέρω πως να τις συνδυάσω!
Στο ebook που έδωσες δεν μπορώ να βρω απάντηση σ'αυτά τα ερωτήματα. :/


Πρώτα από όλα, θέλεις να υλοποιήσεις κάτι σαν «Πατήστε κάποιο πλήκτο για συνέχεια». Στο Linux αυτό είναι λίγο πιο περίπλοκο από ότι σε MSDOS.
Δες στο http://cboard.cprogramming.com/c-progra ... linux.html για πληροφορίες για υλοποίηση. Τυπικά δεν το χρειάζεσαι, ωστόσο να το θέλεις πραγματικά, δοκίμασε μια από τις λύσεις και μάθε την καλά, ώστε να βάζεις τον ίδιο κώδικα σε κάθε πρόγραμμά σου.

Για να αλλάζεις καταλόγους, κτλ, χρησιμοποιείς τις βιβλιοθήκες συστήματος.
1. Εγκατέστησε το πακέτο manpages-dev
2. Τώρα εκτελείς π.χ. man 3 chdir
για να δεις τη σωστή κλήση συστήματος για την αλλαγή καταλόγου.

Η χρήση της system() είναι ο μπακάλικός τρόπος, οπότε είναι καλό να την αποφεύγεις. Μπορείς με execve(), κτλ να ξεκινάς διεργασίες, κτλ.

Τυπικά με το devhelp (sudo apt-get install devhelp) μπορείς να εγκαταστήσεις πρόγραμμα για ανάγνωση της βοήθειας, ωστόσο δεν έχουν μετατραπεί οι σελίδες του manpages-dev σε μορφή που να διαβάζει το devhelp.

Μπορείς όπως να το κάνεις με το yelp (εκείνο το πρόγραμμα για βοήθεια/τεκμηρίωση του GNOME). Εκτέλεσε το Yelp και μετά κάνεις αναζήτηση για π.χ. «chdir». Θα δεις τη σελίδα με τις οδηγίες, καθώς και παρόμοιες εντολές. Το καλό με το Yelp είναι ότι υποστηρίζει σελιδοδείκτες, οπότε μπορείς να καταγράψεις τις ενδιαφέρουσες σελίδες.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση


  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Εφαρμογές για Ανάπτυξη Λογισμικού

cron