Показать сообщение отдельно
Старый 24.01.2017, 08:39
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Задача с делением строки довольно простая
Код AS3:
package {
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.filesystem.File;
	import flash.filesystem.FileMode;
	import flash.filesystem.FileStream;
 
	public class TestClass extends Sprite {
 
 
		public function TestClass() {
			var textFile:File = File.applicationDirectory.resolvePath("number_row.txt");
			var fileStream:FileStream = new FileStream();
			fileStream.open(textFile, FileMode.READ);
			var result:String = fileStream.readUTFBytes(fileStream.bytesAvailable);
			parseText1(result);
			parseText2(result);
		}
 
		// первый вариант с двойным сплитом
		private function parseText1(text:String):void {
 
			var assocArray:Object = {};
			var rawSplit:Array = text.split(/[\n\r]+/g);
			for (var i:int = 0; i < rawSplit.length; i++) {
				var str:String = rawSplit[i];
				if (str.length < 2) continue;
				var pairs:Array = str.split(/\s+/);
				// дальше уже можно ключи и значения распределять по массиву
				var key:	String = pairs[0];
				var value:	String = pairs[1];
				assocArray[key] = value;
			}
 
		}
 
		// второй вариант с делением по любому пробелу или переносу строки
		private function parseText2(text:String):void {
			var rawSplit:	Array 	= text.split(/\s+/g);
			var assocArray:	Object 	= {};
			if (rawSplit.length % 2 != 0) {
				// подрезаем длину массива до четной
				rawSplit.pop();
			}
			for (var i:int = 0; i < rawSplit.length; i += 2) {
				var key:	String = rawSplit[i];
				var value:	String = rawSplit[i + 1];
				assocArray[key] = value;
			}
 
 
		}
	}
 
}
я тут сделал с ассоциативным, но там уже доработаешь как нужно, смысл все равно тот же
__________________
Ко мне можно и нужно обращаться на ты)