freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

C και .txt files


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [3 Μηνύματα]      Bookmarks Tags: files Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
gegounaris


Μέλος από: 21 Σεπ 2005
Μηνύματα: 2
Περιοχή: Amaliada- Hrakleio
View users profile
ΜήνυμαΣτις: 30 Ιουν 2007 03:21    Θέμα: C και .txt files Απάντηση με παράθεση  Mark this post and the followings unread

καλημέρα...
εδώ και καιρό προσπαθώ να βρω λύση σε κάτι, όποιος μπορεί να βοηθήσει, ευπρόσδεκτος!
έχω ένα .txt αρχείο το οποίο έχει κάμποσες γραμμές και εγώ θέλω να διαβάζω μόνο την τελευταία γραμμή κάθε φορά. Πώς μπορώ να το πετύχω αυτό? έχω δοκιμάσει διάφορα.

η τελευταία γραμμή που θέλω να να διαβάζω έχει τη μορφή
25042007 1830 0,3 0,3 0,3 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 20,301 20,505 20,386 0,059 0,0 0,0 0,0 0,0 0,0 2,564 0,206 0,217 15,0 15,0 15,0 0,0

Εκτός των 2 πρώτων τιμών οι υπόλοιπες είναι float, πώς μπορώ να την περάσω σε ένα πίνακα?
puppetmaster


Μέλος από: 13 Ιουλ 2007
Μηνύματα: 11

View users profile
ΜήνυμαΣτις: 16 Ιουλ 2007 17:47    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

ένας πίνακας(array) είναι ένα σύνολο μεταβλητών του ίδιου τύπου. Γι'αυτό και μπορείς να ορίσεις τον τύπο του (int, float .....).

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

Η συμβουλή μου είναι να χρησιμοποιήσεις ένα union ή μία structure.

Όσο για το να διαβάσεις την τελευταία γραμμή δεν θα σου πω τον ακριβή κώδικα αλλά
ψάξε τον χαρακτήρα EOF και ξεκίνα να διαβάζεις χαρακτήρες αντίστροφα μέχρι να
βρεις τον πρώτο χαρακτήρα αλλαγής γραμμής. (/n)

Ελπίζω να σε βοήθησα....

_________________
το ninjitsu είναι σαν το σουβλάκι!
αξίζει ότι είναι απο μέσα!
-Δάσκαλος Σοφ-
soteres2002
S. & H. Moderator

Μέλος από: 05 Μαρ 2004
Βοηθήματα: 1
Νέα: 1
Scripts: 1
Μηνύματα: 256+

Περιοχή: Ιωάννινα
View users profile
ΜήνυμαΣτις: 17 Ιουλ 2007 04:49    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

episis, mia alli texniki einai na anoikseis me append mode to arxeio i antistoixa na koinitheis me fseek() sto -1. meta, efoson oi grammes einai fixed length, boreis kai pali me fseek() na kinitheis N bytes piso sto stream kai na kaneis fscanf().

enalaktika, boreis na kaneis explode oles tis grammes theorontas to \n i to \r\n os diaxoristi protipou, kai na kaneis ena strok() gemizontas etsi enan dinamiko pinaka (malloc(), realloc() and friends). an meta xriazesai kai epeksergasia ton allon grammon, auto einai mia kali lisi arkei prota na breis ton aritho ton \n i \r\n auksimeno kata 1 (ena \n i \r\n ftiaxnei 2 grammes)

auto einai ligo friki, kati allo p miazei me tin lisi p protathike pio pano einai aplos na breis to teleutaio index tou karaktira \n i \r\n mesa sto keimeno kai na kaneis ena austirko fseek(). meta kaneis kanonika fscanf(). mallon to kalitero p boreis na kaneis.

dld kati tis logikis
κώδικας:

char *str = "bla bla bla";
int index = 0, index_internal = 0;

while(*str != '\0') {
   if(*str == '\n' || *str == '\r\n')
         index = index_internal;

   str++;
   index_internal++;
}


auto boreis na to prosomioseis sti logiki me arxeia.
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [3 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Τώρα είναι 30 Μαρ 2017 02:46 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos