Načtení *.txt souboru do pole – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Načtení *.txt  souboru do pole – Delphi – Fórum – Programujte.comNačtení *.txt souboru do pole – Delphi – Fórum – Programujte.com

 

Dr.Vostep
~ Anonymní uživatel
5 příspěvků
1. 4. 2012   #1
-
0
-

Ahoj,

snažím se načíst znaky z *.txt souboru (25x11) do pole. Jenže nevím, jak to udělat znak po znaku. Nevěděl by někdo? Nebo spíš takhle, potřebuju vědět jaký je znak na souřadnicích x,y - a napadlo mi tohle řešení, lze to řešit i jinak? Jak? Moc by mi to pomohlo.

Díky

Nahlásit jako SPAM
IP: 81.201.60.–
KIIV
~ Moderátor
+43
God of flame
1. 4. 2012   #2
-
0
-

nactes radek, projdes nacteny radek po znacich

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Dr.Vostep
~ Anonymní uživatel
5 příspěvků
1. 4. 2012   #3
-
0
-

Díky, ale to mi moc nepomohlo:)

Zkoušel jsem plno variant:

assign(f, 'soubor.txt');
reset(f);
while not eof(f) do begin

for I := 1 to 25 do
   for j := 1 to 11 do
pole[i,j]:=pom;

ale vždy mi to naplnilo pole jen prvním řádkem:( Mohl bys aspoň nástřel kódu. Nejsem moc zběhlý v syntaxu..

Nahlásit jako SPAM
IP: 81.201.60.–
KIIV
~ Moderátor
+43
God of flame
1. 4. 2012   #4
-
0
-

no jestli je todle cely tak se divim ze to vubec neco naplni..

kazdopadne sem zmaten ktery rozmer ma byt 25 a ktery 11 ...   mas napsano  25x11 ale pole pak mas obracene (x souradnice se dava jako posledni index:  [y,x] )

program test;
var
  ln:string;
  arr: array[1..25,1..11] of char;
  f: text;
  i,j: integer;
  
begin
  assign(f,'test.txt');
  reset(f);
  j:=1;
  repeat
    readln(f,ln);
    for i := 1 to length(ln) do begin
      arr[j,i] := ln[i];
    end;
    inc(j);
  until eof(f);


  for j:=1 to 25 do begin
    for i:=1 to 11 do write(arr[j,i]);
    writeln;
  end;
end.

neco takoveho jede... tedy do doby nez bude vic radku nebo vic sloupcu :)))

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Dr.Vostep
~ Anonymní uživatel
5 příspěvků
2. 4. 2012   #5
-
0
-

Super! Sám jsem byl zmaten - nějak mi uniklo prohození x,y.. Už mi to funguje..

Teď mám nový problém:) Nevím, jestli nové vlákno, ale zkusím sem..

Mám soubor datoveho typu, který jsem nadeklaroval (record). Do toho souboru potřebuju načíst 3 proměnný, což problém není, ale když tam chci načíst další tři, tak nedokážu odřádkovat nebo najít konec souboru, protože to neni soubor:text.. Lze z toho nějak ven? Lze tam nějak odřádkovat?

Díky!

Nahlásit jako SPAM
IP: 81.201.60.–
JoDiK
~ Anonymní uživatel
987 příspěvků
2. 4. 2012   #6
-
0
-

Co kdyby sis nejdřív něco o těch souborech přečetl?

Typové soubory nemají žádné řádky.

Nepochopil jsem, jestli do toho souboru zapisuješ, nebo z něj čteš ani co ti nejde, zkus to napsat srozumitelněji.

jinak pro pohyb v typovém souboru slouží seek, když odhlédnu od automatického při čtení i zápisu...

Nahlásit jako SPAM
IP: 88.103.233.–
Dr.Vostep
~ Anonymní uživatel
5 příspěvků
2. 4. 2012   #7
-
0
-

#6 JoDiK
Snažil jsem se načíst z literatury co šlo, ale tohoto problému se moc netýká, většinou jen s typem text..

Vždy na konci programu vypíšu souhrn informaci do txt. String string TdateTime. To už mi funguje. Přes filesize, si zjistím počet a seekem nastavím, kam má psát. Mě to teoreticky nevadí, že to píše za sebou. když ty záznamy pak dokážu vypsat pod sebe. Půjde to nějak? To bude ten můj problém, nevím jak to z toho txt pak dostat ven (uspořádaně)...

Nahlásit jako SPAM
IP: 81.201.60.–
JoDiK
~ Anonymní uživatel
987 příspěvků
3. 4. 2012   #8
-
0
-

#7 Dr.Vostep
Tak teď už tomu nerozumím vůbec.

Obecně ti můžu říct jen to, že všechno jde, když se chce (a umí se to).

Asi budeš muset ukázat ten kód, se kterým si nevíš rady, z tvého popisu fakt nejde poznat jestli mluvíš o textovém souboru, nebo o typovém, podle použitých funkcí se jedná o typový (u textového filesize ani seek nelze použít) ale hned nato píšeš "jak to z toho txt pak dostat ven"...

Z typového souboru přece přečteš libovolnou informaci a jak ji vypíšeš je na tobě, jestli ji budeš vypisovat na každý řádek jednu nebo za sebe to nemá s typem souboru nic společného.

Asi čteš špatnou literaturu, když tam je jen o textovém souboru.

Zkus kouknout na popis typového souboru sem, Delphi to má prakticky stejné: http://www.spsemoh.cz/vyuka/pascal/

Nahlásit jako SPAM
IP: 88.103.236.–
Dr.Vostep
~ Anonymní uživatel
5 příspěvků
3. 4. 2012   #9
-
0
-

#8 JoDiK
Už večer mi došlo - byl jsem už dost přepracovanej, že když s tím budu pracovat nejdřív jako s typovým souborem, tak to pak můžu jednoduše zavřít a znova otevřít jako textový soubor:-) Trvalo mi to jen hodinu, než jsem si uvědomil, že do toho souboru ukládám prostý text:-D... Je vidět, že je toho teď na mě moc.. Ale i tak moc děkuju..

Nahlásit jako SPAM
IP: 81.201.60.–
JoDiK
~ Anonymní uživatel
987 příspěvků
3. 4. 2012   #10
-
0
-

#9 Dr.Vostep
Tím bych si nebyl tak jistý, typový soubor sice lze otevřít jako textový, ale smysluplné informace z toho nedostaneš - ale na to přijdeš sám...

Každopádně ani není důvod proč to dělat, z typového souboru přečteš co je třeba a vypíšeš na obrazovku nebo kam je libo ve formátu, v jakém budeš chtít...

Nahlásit jako SPAM
IP: 88.103.233.–
Melamber7770
Newbie
6. 4. 2012   #11
-
0
-

#1 Dr.Vostep
pokus se to nějak blíž upřesnit

zkus to jednoduse type record a pak stím nadále pracovat předešlá rada je taky kvalitní ale když dotoho použiješ k tomu ještě type record tak snad z toho neco vymáčkneš víc akorát teda jenom určité věci,pokud by jsi chtěl použit nahodný generátor randomize(); obejdeš se bez mojí rady a prostě si to jenom doplníš...

Nahlásit jako SPAM
IP: 213.19.108.–
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, 2 hosté

 

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