Suchen und ersetzen in einer Datei

S

simon78

Hallo zusammen,

ich habe folgende Datei

######################################################
# Testdatei
######################################################
[VARIABLE]
UPDLEVEL=111
DATA=C:\test\test123
DIR=C:\test\333
INI=C:\test\test.ini

Ich möchte die Nummer 111 mit einer anderen schon vorhandenen Variable ersetzen.
Die anderen Zeilen der Datei müssen so bleiben wie sie sind.
Kann mir jemand helfen?
Danke im voraus?
 
Hi,

um welche Programmiersprache geht's? Oh mann, ich sollte nicht mehr posten wenn ich total uebermuedet bin, ich hatte deine Test Datei fuer Programmiersprachensyntax gehalten, und mich gewundert was das fuer eine komische Sprache sein soll. ;)
Im uebrigen waere es nett wenn du Code Bloecke beim posten benutzen wuerdest. Nevertheless muesstest du dir eine Sprache aussuchen.

mfg,
bytepool
 
Also in PHP hätt ich 2 fertige funktionen, womit man das schnell lösen kann :)
Die eine wandelt die Datei in einen Array, die andere wandelt den Array wieder in einen String, den man dann wieder als Datei abspeichern kann.

PHP:
<?php
	/*
	 * @static array Reading INI-File
	 * @param string $file Contains the filename
	 */
	function ini($file)
	{
		if (!file_exists($file)) return array();
		
		//Reading file
		$lines = file($file);
		
		$array = array();
		$current = &$array;
		
		//Check every line
		foreach ($lines as $line)
		{
			$l = trim($line);
			if ($l == '') continue;
			if (substr($l,0,1) == '#') continue; //Ignore comments
			
			if (substr($l, 0, 1) == '[' && substr($l, -1) == ']') //new area
			{
				$key = substr($l, 1, -1);
				$array[$key] = array();
				$current = &$array[$key];
			}
			else if (($pos = strpos($l, '=')) !== false)
			{
				$_k = trim(substr($l, 0, $pos));
				$_v = trim(substr($l, $pos+1));
				if (is_numeric($_v) == true && strpos($_v,'.') === false)
					$_v = intval($_v);
				$current[$_k] = $_v;
			}
			else
				$current[$l] = true;
		}
		
		return $array;
	}
	
	/*
	 * @static string Converts array to string
	 * @param array $array The given array
	 */
	function array2ini($array)
	{
		$str = '';
		foreach ($array as $key => $val)
		{
			if (is_array($val))
			{
				$str .= "[$key]\n";
				foreach ($val as $k => $v)
					$str .= "$k = $v\n";
			}
			else
				$str .= "$key = $val\n";
		}
		return $str;
	}
?>
 

Ähnliche Themen

Hilfe für ein shell script

solved Problem mit smtp (postfix) als send-only mta hinter NAT

Spalten einer Datei in neue Datei integrieren.

Keine grafische Oberfläche (Debian Installation)

Summe von Zahlen in einer Zeilen bilden

Zurück
Oben