Nahrazení slov v souboru txt – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Nahrazení slov v souboru txt – Pascal – Fórum – Programujte.comNahrazení slov v souboru txt – Pascal – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
GunSpawn0
Newbie
10. 3. 2015   #1
-
0
-

Zdravím pánové,
mám tady problém. Musím udělat program, který po zadání souboru txt uživatelem a slova které má vyhledat, to slovo nahradí (opět slovem, kterě zadal uživatel) a soubor uloží. Zde je můj současný kód:


program Nahrazovac;
uses crt;

var txt,vystup:textfile; {txt je vstupni soubor, vystup bude novy prepsany soubor}
vstup,slovo,nahrada:string; {vstup je promenna s nazvem vstupniho souboru, slovo je hledane slovo a nahrada je slovo, ktere se bude nahrazovat}
vypis:string; {vypis je promenna, pres kterou odkazuji na retezec}
delka:byte; {prvni souradnice hledaneho slova}

begin
clrscr();
writeln('Napiste nazev souboru (i s priponou txt)');
readln(vstup);
Assign(txt, vstup);
{$I-}
Reset(txt);
{$I+}
if ioresult 0 then
begin
writeln('Soubor se nepodarilo otevrit');
Exit;
end;
Assign(vystup, 'nahrazeny');
Rewrite(vystup);

writeln('Zadejte slovo, ktere chcete nahradit.');
readln(slovo);
writeln('Zadejte slovo, kterym ho chcete nahradit.');
readln(nahrada);

while not eof(txt) do
begin
readln(txt, vypis);
delka := pos(slovo,vypis);

if pos(slovo, vypis) = 0 then
se

delete(vypis, delka, delka + (length(slovo) - 1)); {Melo by to smazat ze souboru vypis slovo na pozicich prvniho znaku slova a prvniho znaku slova + delky slova - 1}
insert(nahrada, vypis, delka);
writeln(vypis);
end;
Close(txt);
readln;
end.

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 90.182.20.–
Dobrá firma nebude bazírovat na tom, jakou máš školu nebo kurz, ale na tom, co umíš a co jsi schopen firmě přinést... Michal Štěpánek
Reklama
Reklama
JoDiK
~ Anonymní uživatel
981 příspěvků
10. 3. 2015   #2
-
0
-

#1 GunSpawn
A tvůj problém je v čem?

Nahlásit jako SPAM
IP: 88.103.228.–
GunSpawn0
Newbie
10. 3. 2015   #3
-
0
-

Nekdy mi to prepise vic souradnici a pokud se slovo na danem radku nevyskytuje, vytvori ho na zacatku (vim proc, ale nevim jak to opravit). A pak aby se to ulozilo do toho stejneho souboru.

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 90.182.20.–
Dobrá firma nebude bazírovat na tom, jakou máš školu nebo kurz, ale na tom, co umíš a co jsi schopen firmě přinést... Michal Štěpánek
GunSpawn0
Newbie
10. 3. 2015   #4
-
0
-

A taky bych potřeboval, aby když to na tom řádku to slovo nenajde, přeskočilo to na novej

Nahlásit jako SPAM
IP: 84.244.117.–
Dobrá firma nebude bazírovat na tom, jakou máš školu nebo kurz, ale na tom, co umíš a co jsi schopen firmě přinést... Michal Štěpánek
GunSpawn0
Newbie
10. 3. 2015   #5
-
0
-

Tak už jsem to lehce upravil a jde to, akorát ještě potřebuju pomoct s tím, že když je dané slovo na řádku víckrát,vyhledá jen jedno.

program Nahrazovac;
uses crt;

var txt,vystup:textfile;              {txt je vstupni soubor, vystup bude novy prepsany soubor}
    vstup,slovo,nahrada:string;       {vstup je promenna s nazvem vstupniho souboru, slovo je hledane slovo a nahrada je slovo, ktere se bude nahrazovat}
    vypis:string;                     {vypis je promenna, pres kterou odkazuji na retezec}
    delka:byte;                       {prvni souradnice hledaneho slova}

begin
  clrscr();
  writeln('Napiste nazev souboru (i s priponou txt)');
  readln(vstup);
  Assign(txt, vstup);
  {$I-}
  Reset(txt);
  {$I+}
  if ioresult <> 0 then
  begin
  	writeln('Soubor se nepodarilo otevrit');
  	Exit;
  end;
  Assign(vystup, 'nahrazeny.txt');
  Rewrite(vystup);

  writeln('Zadejte slovo, ktere chcete nahradit.');
  readln(slovo);
  writeln('Zadejte slovo, kterym ho chcete nahradit.');
  readln(nahrada);

  while not eof(txt) do
  begin
   readln(txt, vypis);
   writeln(vypis);
   readln();
   delka := pos(slovo,vypis);

   if delka <> 0 then
   begin
   delete(vypis, delka, delka + (length(slovo) - 1));   
   insert(nahrada, vypis, delka);                       
   writeln(vystup,vypis);
   end;
  end;
  Close(vystup);
  readln;
end.
Nahlásit jako SPAM
IP: 84.244.117.–
Dobrá firma nebude bazírovat na tom, jakou máš školu nebo kurz, ale na tom, co umíš a co jsi schopen firmě přinést... Michal Štěpánek
GunSpawn0
Newbie
10. 3. 2015   #6
-
0
-

Vyřešeno

Nahlásit jako SPAM
IP: 84.244.117.–
Dobrá firma nebude bazírovat na tom, jakou máš školu nebo kurz, ale na tom, co umíš a co jsi schopen firmě přinést... Michal Štěpánek
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 24 hostů

Podobná vlákna

Načítání slov z .txt — založil Crassty

Kontrola slov ze souboru. — založil georgiok

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý