Godfath3r Δημοσ. 4 Ιουνίου 2004 Δημοσ. 4 Ιουνίου 2004 8a h8ela mou peite an yparxei tropos anoigontas ena arxeio .txt paradeigma me thn entolh fopen("file.txt", "a") na grafw me thn fprintf se kapoio shmeio tou arxeio kai oxi mono sto telos (symfwna me to "a").Px an 8elw na grapsw sthn 5h seira 'h an 8elw na grapsw katw apo thn seira pou grafei "arxh". Euxarsito ek twn proterwn...
nobody Δημοσ. 5 Ιουνίου 2004 Δημοσ. 5 Ιουνίου 2004 Xrhsimopoihse ws parametro to r+. To thema einai oti grafeis men alla grafeis panw sta dedomena. Den gnwrizw twra pws mporeis na prostheteis kena. To sigouro einai oti mporeis na to katafeis auto an anoikseis 2 arxeia, to ena gia read kai to allo gia write & na prostheseis na dedomena ekei pou theleis
skyline_gr Δημοσ. 5 Ιουνίου 2004 Δημοσ. 5 Ιουνίου 2004 Η παράμετρος r+ είναι για άλλο σκοπό κυρίως. Για να μετακινηθείς μέσα στο αρχείο χρησιμοποίησε την fseek(). H σύνταξη είναι fseek(δείκτης στο αρχείο, byte που θές να μετακινηθείς , σε σχέση με τι). Η δεύτερη παράμετρος μπορεί να αρνητικός ή θετικός ανάλογα με το αν θές να πάς μπρός η πίσω. Η τρίτη παίρνει τρείς δυνατές τιμές. 0 για αρχή του αρχείου, 1 η τρέχων θέση και 2 για το τέλος του αρχείου. μπορείς να χρησιμοποιήσεις και forward() ή rewind() για να πάς στο τέλος ή στην αρχή του αρχείου αντίστοιχα. Τα δεδομένα γίνονται overwrite γι αυτό πρέπει να πάρεις τα μέτρα σου.....
baxter Δημοσ. 5 Ιουνίου 2004 Δημοσ. 5 Ιουνίου 2004 o pio aplos tropos einai na diavazeis mia mia seira kai na tin adigrafeis se ena temp file mehri na vreis ti seira pou theleis, meta na grafeis sto temp file afto pou thes na prostheseis kai meta na sinehizeis na adigrafeis mehri to telos tou arheiou.. telos, adigrafeis olo to temp file sto original me rewrite kai svineis to temp
Godfath3r Δημοσ. 5 Ιουνίου 2004 Μέλος Δημοσ. 5 Ιουνίου 2004 baxter afto akrivws kanw sto programma mou mono pou den mporw na stamatisw sto shmeio pou 8elw gia na symplhrwsw ta epipleon stoixeia.8a prepei na sygkrinw dyo strings (ena apo thn fgets kai ena pou 8a prepei na orisw egw).An ypo8esoume pws egw 8elw na stamataei h egrafh sto temp arxeio thn stigmh pou vrei timh -list- pws 8a prepei na dhlwsw to string pou 8a sygkrinw me to string ths fgets?paradeigma... arxh keimenou 1h grammh keimeno 2h grammh keimeno 3h grammh -list- ............................. edw 8elw na pros8esw me mia fprintf .............................. 4h grammh keimeno telos keimenou An den katalavaineis mporw na para8esw kai kwdika! Eyxaristw gia to endiaferon...
Directx Δημοσ. 5 Ιουνίου 2004 Δημοσ. 5 Ιουνίου 2004 Αν κατάλαβα καλά, θες να ξέρεις σε ποιο offset βρίσκεται το στοιχείο που αναζητείς; εάν ναι, τότε η παρακάτω ρουτίνα μου μπορεί να σου επιστρέψει με βάση το iOffset_Mode, που ορίζεις, το που ξεκινά ή έχει τελειώσει μια σειρά χαρακτήρων (Bytes) στο Stream ενός αρχείου. Σε περίπτωση που το στοιχείο δεν υπάρχει τότε επιστρέφει -1. Η ρουτίνα προϋποθέτει ένα ανοικτό προς ανάγνωση Stream και σέβεται την θέση του Stream offset pointer (δεν κάνει δηλαδή αυτόματα rewind). Προσοχή: Δεν την έχω δοκιμάσει «εξονυχιστικά» ( disclaim ) αλλά πιστεύω ότι μπορεί να φάνει χρήσιμη σε κάποιον (με τις κατάλληλες μετατροπές μπορεί να δουλέψει και για memory blocks). > long FindText_Offset(FILE *Stream,char *pszString,int iOffset_Mode) { /* Επέστρεψε το Offset του Stream που αρχίζει ή τελειώνει το pszString με βάση κάθε φορά την μεταβλητή (διακόπτης) iOffset_Mode. */ int iCharacter; long lIndex,lMatch_Hit=0,lString_Len=strlen(pszString),lData_Offset=-1L; // Διαβάζουμε χαρακτήρα προς χαρακτήρα κάθε στοιχείο του κειμένου while((iCharacter=fgetc(Stream))!=EOF) { // Καθαρισμός των μεταβλητών του συστήματος αναζήτησης lMatch_Hit=0L; lData_Offset=-1L; /* Εαν βρούμε ένα χαρακτήρα όμοιο με τον πρώτο χαρακτήρα του στοιχείου που ψάχνουμε.. */ if(iCharacter==pszString[0]) { // ..Ok, πιστοποιήσαμε τον πρώτο χαρακτήρα του προς εύρεση στοιχείου! lMatch_Hit++; /* ..δοκιμάζουμε να πιστοποιήσουμε και τους υπόλοιπους χαρακτήρες της του αναζητούμενου στοιχείου.. */ for(lIndex=1L;lIndex<=lString_Len;lIndex++) { // ..όπ! φτάσαμε στο τέλος του αρχείου!! if((iCharacter=fgetc(Stream))==EOF){ break; } // ..πόσοι χαρακτήρές ταιριάζουν (σειριακά πάντα); if(pszString[lIndex]==iCharacter){ lMatch_Hit++; } } // Αν οι δυο τιμές είναι όμοιες τότε βρήκαμε το στοιχείο που αναζητούσαμε if(lMatch_Hit==lString_Len) { lData_Offset=ftell(Stream); switch(iOffset_Mode) { case 1: // ..επιστροφή του Offset που αρχίζει το στοιχείο lData_Offset-=(lMatch_Hit+1); break; default:// ..επιστροφή του Offset έχει τελειώσει το στοιχείο lData_Offset-=1; break; } break; } } } return lData_Offset; } Καλή τύχη!
Godfath3r Δημοσ. 5 Ιουνίου 2004 Μέλος Δημοσ. 5 Ιουνίου 2004 epeidh ta pragmata pou katalavainw ston kwdika pou mou pare8eses einai poly liga 8a meletisw kai 8a sas enhmerwsw gia opoiadhpote neoterh mou aporia...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.