| | |
| Stránka: 1 z 1
| [ Príspevkov: 20 ] | |
Autor | Správa |
---|
Registrovaný: 02.06.13 Prihlásený: 07.06.16 Príspevky: 63 Témy: 18 |
Program data; uses crt,graph,sysutils; var stlac,a,b,c,i:integer; riadok:string; PS,S:string[30]; Subor: text; Begin Assign(Subor, 'text15.txt'); reset(Subor); ReadLn(Subor, riadok);//potrebujem aby to čo načitalo uložilo do premennej a nevie m ako dalej val(riadok,i,c); //potrebujem to bez funkcie a proceduri takto nejako StrToInt := i; //lenže nevim ako dalej readln(riadok); writeln('Pocet znakov vo vete je:',length(riadok)); readkey; close(Subor); end. jeto z menu vystrihnute bolo to pod voľbou 4 ale to potom doriešim Potreboval by som poradiť chcem aby načitalo subor z disku a to čo je vnom prehodilo do premennej.
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 02.06.2013 14:17 | |
|
Ak som teda správne pochopil, máš previesť string na číslo (Integer), ale bez pomoci funkcie val? Alebo tam v tom stringu potrebuješ to číslo aj nejako nájsť? V premennej riadok bude po prečítaní súboru iba číslo, alebo aj iný text?
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 02.06.13 Prihlásený: 07.06.16 Príspevky: 63 Témy: 18 |
ja som to na forum našiel ale to bolo cele robene cez funkciu ja len potrebujem aby zo suboru otvorilo ho načitalo načitalo to čo je vnom napr Ahoj a prehodilo to do premennej(integer); potom aby to vypisalo koľko ma znakov tie udaje vtom
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 02.06.2013 14:38 | |
|
Ako chceš "Ahoj" prehodiť do premennej typu Integer? Na počet znakov máš funkciu Length tak, ako ju používaš. Je na tebe, či to priradíš do inej premennej, tam problém nevidím.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 02.06.13 Prihlásený: 07.06.16 Príspevky: 63 Témy: 18 |
ano presne tak ale potrebujem aby to načitalo zo suboru text15.txt ktory je uloženy na disku a vnom su zapisane veci ktore to prehodi do int a potom pomocou length zisti koľko pismen to ma napr
|
|
Registrovaný: 02.06.13 Prihlásený: 07.06.16 Príspevky: 63 Témy: 18 |
načita zo suboru textovu informáciu do premennej,zisti dlžku reťazca,umožni vymazať časť reťazca
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 02.06.2013 14:51 | |
|
No dobre, takto: Premenná typu Integer je číslo. Typicky 4 bajty, ktoré sa interpretujú ako číslo. Premenná typu char je znak. Typicky 1 bajt, ktorý sa interpretuje ako znak podľa ASCII tabulky. Premenná typu string je reťazec znakov, v podstate teda pole znakov (premenných typu char)
Dokážeš prečítať súbor a jeho obsah uložiť do premennej typu string? Dokážeš. Dokážeš zistiť, koľko znakov tento string obsahuje? Dokážeš (funkciou Length)
Zamerajme sa teda na situáciu, že máš obsah súboru v premennej typu string. Čo s tým textom chceš robiť? Nemôžeš predsa text zmeniť na číslo. To môžeš len v prípade, že obsahuje len znaky číslic (napr "123") a to funkciou val uložíš do premennej typu Integer.
Ak už máš text zo súboru v premennej typu string, tak si s ním môžeš robiť čo chceš. Len stále neviem, čo chceš.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 02.06.13 Prihlásený: 07.06.16 Príspevky: 63 Témy: 18 |
BX píše: No dobre, takto: Premenná typu Integer je číslo. Typicky 4 bajty, ktoré sa interpretujú ako číslo. Premenná typu char je znak. Typicky 1 bajt, ktorý sa interpretuje ako znak podľa ASCII tabulky. Premenná typu string je reťazec znakov, v podstate teda pole znakov (premenných typu char)
Dokážeš prečítať súbor a jeho obsah uložiť do premennej typu string? Dokážeš. Dokážeš zistiť, koľko znakov tento string obsahuje? Dokážeš (funkciou Length)
Zamerajme sa teda na situáciu, že máš obsah súboru v premennej typu string. Čo s tým textom chceš robiť? Nemôžeš predsa text zmeniť na číslo. To môžeš len v prípade, že obsahuje len znaky číslic (napr "123") a to funkciou val uložíš do premennej typu Integer.
Ak už máš text zo súboru v premennej typu string, tak si s ním môžeš robiť čo chceš. Len stále neviem, čo chceš. ten subor ktory to otvori z disku načita do premennej pomocou length zisti jeho dlžku , dalej: Begin Write ('Zadaj poziciu z ktorej chces vymazat: '); Readln (b); Write ('Zadaj pocet znakov ktore chces vymazat: '); Readln (c); delete(PS,b,c); Writeln('Vymazane znaky:',S); readkey; goto menu; end; Ale mne proste nejde stoho otvoreneho suboru prehodiť t odo premennej vypiše error.
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 02.06.2013 15:16 | |
|
dany2281995 píše: Ale mne proste nejde stoho otvoreneho suboru prehodiť t odo premennej vypiše error. No super, konečne sa niekam dostávame. Takže pošli kód, ktorý ti chybuje, kde chybuje a napíš aj znenie chyby.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 02.06.13 Prihlásený: 07.06.16 Príspevky: 63 Témy: 18 |
program data; uses crt,sysutils; var Subor: text; riadok:string; i,c:integer; Begin Assign(Subor, 'text15.txt'); reset(Subor); ReadLn(Subor, riadok); val(riadok,i,c); StrToInt := i; readln(riadok); writeln('Pocet znakov vo vete je:',length(riadok)); readkey; close(Subor); end. tak nejako
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 02.06.2013 15:48 | |
|
A prečo chceš vôbec reťazec prevádzať na číslo? Som z toho trochu zmagorený, lebo si písal o reťazci napr "Ahoj" a to na číslo neprevedieš. Ale aj keby, tak prečo by si chcel používať aj funkciu val aj StrToInt? Obe funkcie ti urobia v podstate to isté (odlišnosti nechajme tak) - prevedú ti reťazec na číslo, ak sa to dá. Inak vyvolajú chybu. Po vykonaní val(riadok,i,c) máš v premennej i číslo (ak v sa reťazec v premennej riadok previesť na číslo dá) To isté dostaneš, keĎ vykonáš i := StrToInt(riadok); Tak si vyber jeden spôsob, nie oba naraz.
Tá chyba znamená, že StrToInt je funkcia, tak sa k nej máš aj tak správať.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 02.06.13 Prihlásený: 07.06.16 Príspevky: 63 Témy: 18 |
aha to som nevedel dik
|
|
Registrovaný: 02.06.13 Prihlásený: 07.06.16 Príspevky: 63 Témy: 18 |
a že nejako to nefunguje ked t oskompilujem tak mi vyhodi že znakov je 0 a v textovom je zapisany cely riadok. A za druhe potrebujem ešte že ked otvori ten textovy aby umožnilo vymazať časť zneho Begin Write ('Zadaj poziciu z ktorej chces vymazat: '); Readln (b); Write ('Zadaj pocet znakov ktore chces vymazat: '); Readln (c); delete(PS,b,c); Writeln('Vymazane znaky:',S); readkey; goto menu;
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 02.06.2013 16:05 | |
|
Tak v prvom rade, ty asi vôbec nepotrebuješ funkcie ako val, či StrToInt. Ty chceš len zistiť počet znakov, to urobí funkcia Length. Takže zmaž riadky s val aj StrToInt a počet znakov vypíšeš len ako Kód: i := Length(riadok); writeln('Pocet znakov vo vete je:', i); Hotovo. Mazať priamo v súbore sa nedá. Musíš ho otvoriť, uložiť si jeho obsah do premennej typu string (to vieš), tam to zmazať (aj to vieš, pomocou delete) a následne tento upravený text znovu uložiť do súboru.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 02.06.13 Prihlásený: 07.06.16 Príspevky: 63 Témy: 18 |
if stlac = 4 then Begin clrscr; textcolor(2); Assign(Subor, 'text15.txt'); reset(Subor); while not Eof do Begin ReadLn(Subor, riadok); WriteLn(riadok); PS:= riadok; //skušal som to aj bez toho ale nejde to writeln('Zadaj poziciu na ktorej chces vymazat:');read(a); writeln('Zadaj pocet slabik ktore chces vymazat:');read(b); S := delete (PS,a,b); Writeln(S); readkey; close(Subor); goto menu; end; end; to je v menu a nejako to nechce is5 :/ nejako by som potreboval to doiešiť kde tam mam chibu
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 03.06.2013 9:28 | |
|
ak chceš celý súbor načítať do premnnej PS, tak to urobíš takto Kód: PS := ''; { na zaciatku prazdny retazec } While Not Eof Do Begin ReadLn(Subor, riadok); PS := PS + riadok; End; Až keď máš celý súbor v PS, začni vymazávať.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 02.06.13 Prihlásený: 07.06.16 Príspevky: 63 Témy: 18 |
spracoval som to cele a funguje to Veľmi pekne ti Ďakujem za rady
|
|
Registrovaný: 06.04.10 Prihlásený: 18.02.14 Príspevky: 47 Témy: 2 |
Zhruba takto? (cestu k suboru si uprav podla svojich potrieb) Kód: Program UPRAV_SUBOR; uses Crt; const { cesta k nacitavanemu suboru } cesta = 'D:\text.txt'; var { subor bude textoveho formatu } subor: text; dlzka,maz_zaciatok,maz_koniec: Longint; retazec: string;
BEGIN ClrScr; WriteLn('Cesta k suboru: ',cesta); Assign(subor,cesta); Reset(subor); while not(eof(subor)) do Read(subor,retazec); dlzka := Length(retazec); WriteLn('Dlzka retazca: ',dlzka);
repeat GoToXY(1,3); Write('zadaj (zaciatok,koniec) pozicie mazania: '); { 2 hodnoty zadas oddelene mezerou, alebo ENTERom } ReadLn(maz_zaciatok,maz_koniec); { ako taka podmienka rozsahu mazania v subore } until (maz_zaciatok <= maz_koniec); WriteLn('mazany text: ',copy(retazec,maz_zaciatok,maz_koniec-maz_zaciatok+1));
{ zmazanie zvolenej casti v texte } Delete(retazec,maz_zaciatok,maz_koniec-maz_zaciatok+1);
{ upraveny text ulozeny do povodneho suboru } Rewrite(subor); Write(subor,retazec); Close(subor); Write('DONE !!!');
ReadLn;
END.
|
|
Registrovaný: 02.06.13 Prihlásený: 07.06.16 Príspevky: 63 Témy: 18 |
wáw dobre ty iked som to robil trošk inak ale som rad že mi to funguje a spravil som šetko čo som potreboval teraz som pešiel na objekotve programovanie v pascale čiže na Lazarus
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 03.06.2013 23:06 | |
|
Nevieš ani poriadne pracovať s premennými a už ideš na objekty? To nie je úplne dobrý prístup.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
| Stránka: 1 z 1
| [ Príspevkov: 20 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| [PASCAL] Výmena dvoch hodnôt v súbore v Assembler, C, C++, Pascal, Java | 4 | 601 | 28.03.2011 20:25 majo30095 | | StrToInt v Assembler, C, C++, Pascal, Java | 10 | 1355 | 24.04.2007 17:27 audiotrack | | Free Pascal a Turbo Pascal v Assembler, C, C++, Pascal, Java | 0 | 384 | 19.12.2014 13:18 Styracoz | | Hľadanie v súbore v PHP, ASP | 5 | 485 | 13.12.2011 18:26 shaggy | | php v xml súbore v PHP, ASP | 2 | 314 | 28.04.2013 22:26 Ďuri | | Assembler - čísla v súbore v Assembler, C, C++, Pascal, Java | 11 | 746 | 18.12.2007 9:17 majo-majo | | WordPress zmeny v súbore v Redakčné systémy | 1 | 851 | 16.06.2008 19:24 Ďuri | | škriatok v súbore .htaccess v HTML, XHTML, XML, CSS | 1 | 752 | 07.11.2006 6:52 p360t | | počet riadkov v súbore v PHP, ASP | 1 | 805 | 29.06.2009 19:40 Ďuri | | Odkazy v externom súbore v HTML, XHTML, XML, CSS | 9 | 567 | 30.11.2007 18:10 chrono | | Riadky v subore.txt v PHP, ASP | 3 | 440 | 28.05.2009 9:12 p360t | | Prepis konkretneho riadku v subore v Assembler, C, C++, Pascal, Java | 6 | 666 | 21.10.2011 12:57 Fico | | Premenovanie tagov v xml súbore v HTML, XHTML, XML, CSS | 10 | 749 | 23.10.2018 23:51 SP!DER | | Skupinove odstranenie textu v subore v Ostatné programy | 2 | 1067 | 15.05.2006 20:45 JanoF | | nefunguje js v externom súbore v JavaScript, VBScript, Ajax | 2 | 355 | 15.09.2012 19:46 kurtulik1 | | Nespravne farby vo vystupnom PDF subore v Grafické programy | 0 | 278 | 20.09.2010 8:49 quark |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|