chr_nikol Δημοσ. 6 Ιουλίου 2004 Δημοσ. 6 Ιουλίου 2004 ΚΑΛΗΣΠΕΡΑ, θελω help με ενα προγραμμα που πρεπει να κανω... εχω ενα αρχειο κειμενου, "test.dat" το οποιο εχει γραμμες ισως κε μεγαλυτερες απο 1000 char... θελω ενα προγραμμα σε C η Pascal, το οποιο θα ψαχνει να βρει μεσα στο κειμενοτο χαρακτηρα $, και θα ψαχνει πριν το $ ωσ να βρει τουσ χαρακτηρες <#, και μετα το $ ως να βρει τους #> μολις τα βρει, να γραφει σε ενα νεο αρχειο κειμενου με αυτη τη μορφη: <#hdafjhgjdfag$sbgsbgsbg#> <#gsbsgdabgb$sbvdabadf#> ... ... μπορει κανεις να βοηθησει ???? το εκανα σε pascal, και δουλευει σωστα μεχρι και για κειμενο με γραμμες μεγεθους ως 256 char... απο κει και περα ομως κανει mlk!!! δλδ ειτε δε βρισκει τπτ, ειτε βγαζει: <#gshsdg$sgafg><adgajkdfgajgjafg περιμενω βοηθεια απο οποιον μπορει να βγαλει καποια ακρη....
abudakos Δημοσ. 6 Ιουλίου 2004 Δημοσ. 6 Ιουλίου 2004 prota prepei na dieukriniseis kati: 1. ta strings '<#' kai '#>' ypothetoume oti yparxoun stin idia grammi h' mporei na einai se diaforetikes grammes? 2. yparxei periptosi anamesa sta strings '<#' kai '#> na yparxei '<#' h'/kai '#>', diladi mporoun auta na einai nested? episis, giati na kaneis tin zoi sou dyskoli psaxnontas prota ton xaraktira '$'? Arkei nomizo na psaxneis na breis starting tag '<#' kai closing tag '#>' ektos kai an symbenei kati allo anamesa tous pou den exeis dieukrinisei.
chr_nikol Δημοσ. 6 Ιουλίου 2004 Μέλος Δημοσ. 6 Ιουλίου 2004 1. ta strings logika iparxun stin idia grami, ektos ki an to programa mas exi provlima ke den boresi na ta pari ola ke ta spasi... pantos sto arxio ine panta se mia grami... 2. den borun na ine nested... -den epimenw na psaxno to xaraktira $... arki ke kapia lisi opos les, arki na ine dilomena kapu se define wste na boro na alakso tus dio xaraktires an xriasti sto mellon... (iparxei pithanotita na ginun '/#' '#\') thanx for the support
abudakos Δημοσ. 7 Ιουλίου 2004 Δημοσ. 7 Ιουλίου 2004 loipon to parakato to exo testarei se linux me gcc kai paizei kanonika. BUF_SIZ: edo orizeis to megisto megethos mias grammis INPUT_FILENAME: to arxeio apo to opoio tha diabaseis OUTPUT_FILENAME: to arxeio sto opoio tha grapseis START_TAG & END_TAG: ta delimiters sou to programma proypothetei oti ta <# kai #> briskontai stin idia grammi kai oti to BUF_SIZ einai arketa megalo oso i megalyteri grammi + 1 xaraktiras. episis mia grammi mporei na periexei mono ena <# ... #>. mporeis na tropopoiiseis to programma gia na antimetopiseis perissotera <#...#> se mia grammi, nested <#...#> h' kai multi-line <#...#>. elpizo na boithisa > #include <stdio.h> #include <stdlib.h> #include <string.h> #define BUF_SIZ 256 #define INPUT_FILENAME "/path/to/input.dat" #define OUTPUT_FILENAME "/path/to/output.dat" #define START_TAG "<#" #define END_TAG "#>" int main(int argc, char **argv) { FILE *fp_input = NULL, *fp_output = NULL; char *buffer = NULL, *buffer1 = NULL, *buffer2 = NULL, *buffer3 = NULL; buffer = (char *) malloc(BUF_SIZ*sizeof(char)); if (!buffer) { printf("No memory!\n"); exit(EXIT_FAILURE); } if ((fp_input = fopen(INPUT_FILENAME, "r")) == NULL) { printf("Could not open '%s' for read.\n", INPUT_FILENAME); exit(EXIT_FAILURE); } if ((fp_output = fopen(OUTPUT_FILENAME, "w")) == NULL) { printf("Could not open '%s' for write.\n", OUTPUT_FILENAME); exit(EXIT_FAILURE); } while (fgets(buffer, BUF_SIZ, fp_input) != NULL) { if ((buffer1 = strstr(buffer, START_TAG)) != NULL && (buffer2 = strstr(buffer, END_TAG)) != NULL) { buffer3 = buffer1; do { fputc(*buffer3, fp_output); ++buffer3; } while(buffer3 != buffer2+strlen(END_TAG)); fputc('\n', fp_output); } } fclose(fp_input); fclose(fp_output); return EXIT_SUCCESS; }
chr_nikol Δημοσ. 8 Ιουλίου 2004 Μέλος Δημοσ. 8 Ιουλίου 2004 poli wrea i lisi su file mu ke efxaristw gia ton kopo... kat arxin omos distixos paratirw pos den exi puthena ston kodika to xaraktira $... ara ksexases ipothetw mia parametro tis askisis... anamesa sta <# ke #>, ektos apo ta tixea char, kapu prepi na iparxei $... dld: <#fghzdgasdfgdfag#> !!!!!!!!!invalid!!!!!!!! not for export to file!!!!!!!!! <#fghsgh$sfnsfggsfsn#> VALID!!! export to file <#sdfgsgf$dsf$sdf#> !!!!!!!invalid!!!!!! not for export to file!!!!!!!! episis anamesa mexri ena $ ginete dekto... ------------------------------------------------ telos, tha me endiefere i lisi gia anagnorisi perisoteron apo ena per line, nested de me endiaferi... multi-line ti enois??? an ine efikto i lisi extra se neo code?? /*wste na katalavw pos akrivos ginete perisotera ana line... i estw ekino to tmima kodika me kokina...*/ an parepiptontos exis xrono na valis ke merika sxolia efprosdekta!!! thanx ke pali file mu!!!
chr_nikol Δημοσ. 8 Ιουλίου 2004 Μέλος Δημοσ. 8 Ιουλίου 2004 Episis ena akomi problimataki pu vrika... an to start tag ke end tag prepi na simperilavi xaraktires " ti ginete? den kani compile...
chr_nikol Δημοσ. 8 Ιουλίου 2004 Μέλος Δημοσ. 8 Ιουλίου 2004 Episis ena lathos pu exi o kodikas, (eksetias lathos diefkrinisis mu vevea...) sto output ektiponi ke ta starting and ending tags... mono oti ine mesa epithimume... thanx again, ki elpizo na mi se piezw poli...
baxter Δημοσ. 8 Ιουλίου 2004 Δημοσ. 8 Ιουλίου 2004 το εκανα σε pascal, και δουλευει σωστα μεχρι και για κειμενο με γραμμες μεγεθους ως 256 char... απο κει και περα ομως κανει mlk!!! δλδ ειτε δε βρισκει τπτ, ειτε βγαζει: <#gshsdg$sgafg><adgajkdfgajgjafg afto simvainei giati ta strings se pascal boroun na apothikefsoun mehri 255 haraktires
alkisg Δημοσ. 9 Ιουλίου 2004 Δημοσ. 9 Ιουλίου 2004 Αν θέλεις πάνω από 255 χαρακτήρες σε Pascal τότε μπορείς είτε να χρησιμοποιήσεις Delphi (κατά βάση είναι Pascal και υποστηρίζει μέχρι 4 δις χαρακτήρες) είτε να δηλώσεις mybigstring: array[1..10000] of char.
chr_nikol Δημοσ. 10 Ιουλίου 2004 Μέλος Δημοσ. 10 Ιουλίου 2004 re pedia den dulevi tpt ap ola afta... bori kanis telika na voithisi me to programa i na epidiorthosi ton kodika tu abudakos, wste na antapokrinete se osa ipa meta tin anakinosi tu ?
Διονύσης Δημοσ. 11 Ιουλίου 2004 Δημοσ. 11 Ιουλίου 2004 Αυτό που σου προτείνει ο alkisg πρεπει να δουλεύει. Να ορίσεις δηλαδή στο μέρος TYPE ένα δικό σου τύπο μεταβλητής όπως mybigstring=array[1..1000] of char και έπειτα στο μέρος VAR αντί να δηλώσεις μεταβλητή τύπου string, να δηλώσεις μεταβλητή τύπου mybigstring. Κάνε και κατάλληλες αρχικοποιήσεις.
chr_nikol Δημοσ. 11 Ιουλίου 2004 Μέλος Δημοσ. 11 Ιουλίου 2004 den dulevi distixos... to dokimasa... mallon mono i C mas apomeni...
alkisg Δημοσ. 12 Ιουλίου 2004 Δημοσ. 12 Ιουλίου 2004 Τα arrays of char στην Pascal δουλεύουν, απλά δεν μπορείς στην συνέχεια να χρησιμοποιήσεις τις συναρτήσεις χειρισμού strings. Π.χ. var a: array[1..280] of char; i: integer; begin for i := 1 to 280 do read(a); write('Edwses :'); for i := 1 to 280 do write(a); end. και αν το τρέξεις και γράψεις 280 γράμματα (με μερικά enter ενδιάμεσα επειδή δεν επαρκεί ο buffer του πληκτρολογίου) σου βγάζει: qwepoiruqpwoeiur pqowieur pqowieur pqoiweur poqiwuerp oiquw repo iuqwpeori uqwpo eiru qpowiuer poqiwuer poiquwerpo iquwepori uqw qweproijq wpjirqpowiejr pqoiwjerp oqijwerpo ijqwepori jqwpoeirj qpwoiejr qpoiwje r poqiwjer poqijw poriqjwpreoi jqwpeori jqwer q qwer pqoiwjepr oqijwporijqwperoi jqwpeorij qpwoeirj pqowiejr pqoiwjepr oqiwjepr oqijwrepoiqjwepor ijqwepori jqwpeorij qwpr Edwses :qwepoiruqpwoeiur pqowieur pqowieur pqoiweur poqiwuerp oiquw repo iuqwpeo ri uqwpoeiru qpowiuer poqiwuer poiquwerpo iquwepori uqw qweproijq wpjirqpowiejr pqoiwjerp oqijwerpo ijqwepori jqwpoeirj qpwoiejr qpoiwje r poqiwjer poqijw poriqjwpreoi jqwpeori jqwer q qwer pqoiwjepr oqijwpo
randaplan Δημοσ. 15 Μαΐου 2009 Δημοσ. 15 Μαΐου 2009 ρε παιδια ας με βοη8ησει καποιος.. 8ελω ενα προγραμμα σε γλωσσα turbo pascal για την σχολη το οποιο να ειναι παρομειο μ αυτο του kino του οπαπ ας βοηθησει καποιος σας παρακαλω
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.