Projití děravého pole – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Projití děravého pole – PHP – Fórum – Programujte.comProjití děravého pole – PHP – Fórum – Programujte.com

 

Matěj Andrle+1
Grafoman
10. 9. 2013   #1
-
0
-

Dobrý den,

na serveru mám soubory pojmenovávané od 1 po x. (1.txt, 2.txt,...) Vím, že je to trochu prasárna, ale fixuji si tak pořadí souborů. Ve skutečnosti totiž potřebuji řadit podle filectime, jelikož to by bylo zbytečně složité, alespoň co jsem viděl, nastolil jsem řád již při vytváření souboru, ne až při vytahování... Už jsem to fixoval ve více částech a tak to předělávat moc nechci. Problém samozřejmě nastává ve chvíli, kdy jeden soubor někdo smaže. Nechci to zakazovat - chci to umožnit. Pročež jsem vytvořil akci repair, která má opravit narušené pole souborů. Tak nějak mě nenapadá, jak nejlépe znovu nastolit pořadí od 1 po x. Jak to tedy udělat nejefektivněji? (Napadá mne zbytečně složité řešení - normální for, co když mu nevyjde vytažení podle indexu, incriminuje rozsah cyklu a tak do něj narvu o jedno vyšší číslo, než jsem se dozvědel z count... Ponevadž zde neodpovídá rozsah pole maximálnímu dosažitelnému indexu...)

Děkuji.

Nahlásit jako SPAM
IP: 78.136.150.–
Paja2
~ Moderátor
+2
Věrný člen
10. 9. 2013   #2
-
0
-

#1 Matěj Andrle
možná by se ti hodily sort nebo rsort, ty totiž přečíslují indexy

Nahlásit jako SPAM
IP: 178.20.137.–
KIIV
~ Moderátor
+43
God of flame
10. 9. 2013   #3
-
0
-

projit kde? jen v tom poli? nestacil by proste foreach? nebo si vytahnout pole klicu a projit podle toho...

Nahlásit jako SPAM
IP: 62.216.147.–
Program vždy dělá to co naprogramujete, ne to co chcete...
peter
~ Anonymní uživatel
4014 příspěvků
10. 9. 2013   #4
-
0
-

Matěj Andrle - Proc tam neukladat souboy pomoci casoveho razitka? Sice to je silene dlouhe cislo, ale kdyz se to uklada pomoci php programu, tak bude vzdy unikatni. Ze to nebude presne +1 -1, to snad nevadi.
Jinak potom pomoci opedir prevest do pole, pole seradit a forem dohledat, ktere cislo tam schazi. Ale, nevim, jak se to zachova, kdyz soubor budou nahravat dva uzivatele soucasne. Teoreticky by jim to nemelo priradit stejne cislo.
take si muzes udelat pole se seznamem volnych id a ulozit do souboru.
 

Nahlásit jako SPAM
IP: 193.84.207.–
prdelnatý anděl
~ Anonymní uživatel
33 příspěvků
10. 9. 2013   #5
-
0
-

Povrchní řešení:

  1. Načíst názvy všech odpovídajících souborů do pole.
  2. Pole seřadit.
  3. Projít toto pole spolu s proměnnou, ve které uchovávám správný název; při každém nesouladu soubor přejmenuju.

Lepší řešení:

předělat :-)

P.S. Ono to nevadí, že se to po jednoho smazání souboru a "opravě" celé rozhodí?

Nahlásit jako SPAM
IP: 213.151.77.–
Matěj Andrle+1
Grafoman
10. 9. 2013   #6
-
0
-

Chci jen přejmenovat soubory (1, 5, 8, 10).txt na (1, 2, 3, 4).txt...

Nahlásit jako SPAM
IP: 78.136.150.–
z_moravec
~ Redaktor
+3
Posthunter
10. 9. 2013   #7
-
0
-

#6 Matěj Andrle
Viz odpověď #5

Nahlásit jako SPAM
IP: 46.39.170.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Kit+15
Guru
21. 9. 2013   #8
-
0
-

#6 Matěj Andrle
Sám jsi napsal, že je to prasárna. Potvrzuji. Ty díry tam klidně nech.

Vidím, že ty soubory máš .txt. Uvažoval bych nad tím, že bych ty texty uložil do databáze pod ID. Tím se zmíněné problémy samy vyřeší.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
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, 46 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ý