Anonymní profil BBoy – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil BBoy – Programujte.comAnonymní profil BBoy – Programujte.com

 

Příspěvky odeslané z IP adresy 213.180.34.–

BBoy
Java › Přidání řetězce na začátek k…
9. 5. 2014   #189948

#2 sleepy
Ahoj. Problém byl asi v tom souběžném otevření pro zápis/čtení. Když si data kopíruju do nového souboru a při tom je upravuji, funguje vše jak má.

 

File tempFile = new File("newFile.csv");
		FileInputStream fis = new FileInputStream(datovySoubor);
		BufferedReader oldFileReader = new BufferedReader(new InputStreamReader(fis));
		BufferedWriter tempFileReader = new BufferedWriter(new FileWriter(tempFile,	false));

		int id = 0; String line = null;
		while ((line = oldFileReader.readLine()) != null) {
			line = line.replaceAll(line, id + "," + line + "\n");
			tempFileReader.write(line);
			id++;
		}
		
		oldFileReader.close();
		tempFileReader.close();
		
		tempFile.renameTo(datovySoubor);
		datovySoubor.delete();
BBoy
Java › Přidání řetězce na začátek k…
6. 5. 2014   #189875

Ahoj. Mám soubor, obsahující několik tisíc řádků ve stejném formátu. Snažím se na každý řádek přidat ID, tedy inkrementující se integer. Nemůžu přijít na chybu. Do souboru se nic nepřidá. Zkoušel jsem 2 „zaručená řešení“ (StackOverflow). Jediné, co mě napadá, je špatné zavíraní proudů... :

První nefunkční způsob:

	public void addIDs() throws IOException {
		int id = 0;
		StringBuilder result = new StringBuilder();
		LineIterator it = FileUtils.lineIterator(datovySoubor); // datovySoubor je typu File
		try {
			while (it.hasNext()) {
				String line = it.nextLine();
				result.append(id).append(",").append(line);
				id++;
			}
		} finally {
			it.close();
		}
	}


Druhý nefunkční způsob: 

	public void addIDs() throws IOException {
		FileInputStream fis = new FileInputStream(datovySoubor);
		BufferedReader br = new BufferedReader(new InputStreamReader(fis));
		BufferedWriter bw = new BufferedWriter(new FileWriter(datovySoubor,	true));

		String line;
		int id = 0;
		while ((line = br.readLine()) != null) {
			bw.write(id + "," + line);
			bw.newLine();
			id++;
		}
		br.close();
		bw.close();
		fis.close();
	}
PHP › karel v php (robot na výuku…
21. 5. 2012   #158220

 zatim dík, k něčemu jsem se doplácal, ale funkčnost je jen částečná... po zadání dvou příkazů s parametrem pod sebe se program zacyclí

	<!-- formular -->
	<form action="karel-ex.php" method="POST">
    <textarea name="prikaz"></textarea><br />
    <input name="vykonat" type="submit" value="Vykonat" />
    </form>
    
    <?php
	$maxtr = 10;
	$maxtd = 10;
	
	if(isset($_POST["prikaz"])) {
		
			
			
			/*$pole=array(1=>'a','b','c'); 
			foreach ($pole as $klic=>$hodnota) { echo $klic.'-'.$hodnota.',';}*/
			
			//$pokyny = array('krok 5', 'krok', 'otoc 2');
			$prikazy = explode("\n", $_POST["prikaz"]);
				foreach($prikazy as $pokyn) {
				$exPrikaz = explode(' ', $pokyn);
					if(count($exPrikaz) == 2) {
						$prikaz[] = $exPrikaz[0];
						$pocet[] = $exPrikaz[1];
					} else {
						$prikaz[] = $exPrikaz[0];
						$pocet[] = 1;
					}

			switch (trim($prikaz[0])) {
				
				/* posunuti karla o jedno pole s osetrujici podminkou aby nevylezl z pole */
				case "krok":
					if($pocet[0] > 0) {
						for($i=$pocet[0];$i>0;$i--){
					switch ($_SESSION['karel']['smer']) {
							case "j": if ($_SESSION['karel']['y'] < $maxtr) {$_SESSION['karel']['y']++;} break;
							case "z": if ($_SESSION['karel']['x'] > 1) {$_SESSION['karel']['x']--;} break;
							case "s": if ($_SESSION['karel']['y'] > 1) {$_SESSION['karel']['y']--;} break;
							case "v": if ($_SESSION['karel']['x'] < $maxtd) {$_SESSION['karel']['x']++;} break;
						}}}
					break;
				
				/* zadani prikazu vlevo - otoci karla doleva o jeden smer */	
				case "vlevobok":
					if($pocet[0] > 0) {
							for($i=$pocet[0];$i>0;$i--){
						switch ($_SESSION['karel']['smer']) {
							case "j": $_SESSION['karel']['smer'] = "z"; $_SESSION['karel']['img'] = "<img src='doleva.png' alt='z' />"; break;
							case "z": $_SESSION['karel']['smer'] = "s"; $_SESSION['karel']['img'] = "<img src='nahoru.png' alt='s' />"; break;
							case "s": $_SESSION['karel']['smer'] = "v"; $_SESSION['karel']['img'] = "<img src='doprava.png' alt='v' />"; break;
							case "v": $_SESSION['karel']['smer'] = "j"; $_SESSION['karel']['img'] = "<img src='dolu.png' alt='j' />"; break;
						}}}
					break;
				
				/* poloz - polozeni objektu */	
				case "poloz":
					$_SESSION['cihlaid']++;
					$_SESSION['cihla']['cihlaid'] = $pocet1;
					$_SESSION['cihlay'] = $_SESSION['karel']['y'];
					$_SESSION['cihlax'] = $_SESSION['karel']['x'];
					$_SESSION['cihla'][$_SESSION['cihlay']][$_SESSION['cihlax']] = $_SESSION['cihla']['cihlaid'];
					//$cihla[$_SESSION['karel']['y']][$_SESSION['karel']['x']] = "X";
					//$_SESSION['cihla'][$_SESSION['karel']['y']][$_SESSION['karel']['x']] = "X";
					break;
				
				/* nastaveni defaultnich hodnot */	
				case "reset":
					$_SESSION['cihlaid'] = 0;
					$_SESSION['karel']['smer'] = "j"; 
					$_SESSION['karel']['img'] = "<img src='dolu.png' alt='j' />";
					$_SESSION['karel']['y'] = 1;
					$_SESSION['karel']['x'] = 1;
					unset($_SESSION['cihla']);
					break;
			}			
		}
	
	} else 
			/* Reset hodnot pri znovu nacteni stranky */
			{$_SESSION['cihlaid'] = 0;
			$_SESSION['karel']['smer'] = "j"; 
			$_SESSION['karel']['img'] = "<img src='dolu.png' alt='j' />";
			$_SESSION['karel']['y'] = 1;
			$_SESSION['karel']['x'] = 1;
			unset($_SESSION['cihla']);}
	
	$karel[$_SESSION['karel']['y']][$_SESSION['karel']['x']] = $_SESSION['karel']['img'];
	
	/* samotna tabulka s karlem */
	echo "<table>\n";
	for($tr=1;$tr<=$maxtr;$tr++){
		echo "<tr>\n";
			for($td=1;$td<=$maxtd;$td++){
				echo "<td align='center'>\n";
				if (isset($karel[$tr][$td])) {
				if ($karel[$tr][$td] == $_SESSION['karel']['img']) {
				echo $karel[$tr][$td];} }
				
				if (isset($_SESSION['cihla'][$tr][$td])) {
				if ($_SESSION['cihla'][$tr][$td] == $_SESSION['cihla']['cihlaid']) {
				echo $_SESSION['cihla'][$tr][$td];} }
				echo "</td>\n";
			}
		echo "</tr>\n";
	}
	echo "</table>\n";
	?>
Kryštof
PHP › karel v php (robot na výuku…
21. 5. 2012   #158215

Zdravim, dělám na domácím úkolu Karel v php.. Základní verze má zvládat: krok, levobok a poloz to mám, ale potřebuji pokročilou verzi, která bude umět i parametry takže "krok 4" = 4* "krok"

demo základní verze zde: http://narwhal.php5.cz/karel/karel.php

příkazy: krok, vlevo, poloz - oddělujte entrem

---

U té pokročilé verze jsem se zasekl u toho, že když si rozdělím podle mezery pole hodnot vznikne mi např. toto:
"krok

4

levobok

3

krok"

a já potřebuji příkaz tj. krok, levobok, poloz uložit do proměnné $prikaz a parametr číslo do proměnné $cislo... podmínku na rozpoznání jestli jde o parametr nebo příkaz mám, ale nějak mi nejde zapisování do polí. ukázka zdrojáku ($hodnota1 je to smíšené pole parametrů a hodnot ve foreachi):

         if(strlen(trim($hodnota1)) == 1){
            $i++;
            $parametr[] = $hodnota1;
         } else {
            $q++;   
            $prikaz[] = $hodnota1;
         }

 

 

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