Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Hed-kun

Программирование Т. 5

Рекомендованные сообщения

юзаю OpenPop библиотеку для чтения писем с почты, с gmail при первом запуске приложения все ок, а при последующих всегда показывает 0 сообещний, с mail всегда все работает. C#

Ну может ты типа только непрочитанные читаешь? Или либа?

Поделиться сообщением


Ссылка на сообщение

значит поп хуев :nate:


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
Гость Двапой
(изменено)

Долго - долго искал Valve keyValue parser на php, были даже рабочие варианты, но с большими файлами не справлялись. Поэтому я сделал по своему.

 

Работает костыльно но быстро. Быстрее альтернатив.

<?php

class Vparser {
  private $file;
  private $result;

  const COMMA = ',';
  const L_BKT = '{';
  const R_BKT = '}';
  const COLON = ':';
  const QUOTE = '"';

  public function __construct() {}

  public function load ($file) {
  $this->file = file($file);
  }

  public function parse () {
  $result = [];
  $fileCount = count($this->file);

  for ($i = 0; $i < $fileCount; $i++) {
	 $exploded = explode(static::QUOTE, trim($this->file[$i]));
	 $count = count($exploded);

	 if($count === 1) { // } or {
	    $bkt = $exploded[0];
	    $result[] = $bkt;

	    if($bkt === static::R_BKT && $fileCount > $i + 1) {
		   $next = $this->file[$i + 1];
		   $next = trim($next);

		   if($next !== static::R_BKT) {
			  $result[] = static::COMMA;
		   }
	    }
	 }

	 else if($count === 3) { // key of object
	    $result[] = static::QUOTE . $exploded[1] . static::QUOTE . static::COLON;
	 }

	 else if($count === 5) { // key - value
	    $result[] = static::QUOTE . $exploded[1] . static::QUOTE . static::COLON;
	    $result[] = static::QUOTE . $exploded[3] . static::QUOTE;

	    if($fileCount > $i + 1) {
		   $next = $this->file[$i + 1];
		   $next = trim($next);

		   if($next !== static::R_BKT) {
			  $result[] = static::COMMA;
		   }
	    }
	 }
  }

  $this->result = static::L_BKT . implode('', $result) . static::R_BKT;
  }

  public function toObj () {
  return json_decode($this->result);
  }
}


 

 

konata.png

 

только не уверен что работает быстрее trim или str_contains

 

konata.png

 

меньше чем пол секунды на файл размером 3,5 мб

 

konata.png

 

выложил на гитхаб https://github.com/Evgeny-/Valve-KeyValue-parser

 

konata.png


Изменено пользователем Двапой

Поделиться сообщением


Ссылка на сообщение

я только что посрал как следует - думаю выложить это на гитхаб


Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение
Гость Двапой

Рабишь как всегда мочит. (Нет)

 

А по делу - много кто в инете искал решение. Решения не было. Поэтому я написал свое и выложил в открытый доступ, не вижу смысла меня в этом попрекать.

 

К тому же идея парсера очень проста - довести этот формат до жейсона и парсить его как жсон нативно, поэтому парсер работает очень быстро.

 

konata.png

Поделиться сообщением


Ссылка на сообщение

двапой

мне изза тебя неделю джус выписал


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение

двапой решает вопросы


Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение
Гость Двапой няша

Кому-то припекло

 

konata.png

Поделиться сообщением


Ссылка на сообщение

опять удалили?))))))


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение
Гость Не Двапой

Кому-то припекло не единожды. awesome.png

 

konata.png

 

Парень по делу говорит big134.gif

 

konata.png

 

Но ненавижу роуты в конфиг-файлах nein.gif

 

konata.png

Поделиться сообщением


Ссылка на сообщение
(изменено)

ну раз не двапой, то джус тебя не удалит


Изменено пользователем Kant

Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

ну давай тебя удалим. надо же кого-то удалить


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
Гость Жус

Кому-то сильно печет mini-happy.png

 

konata.png

 

Кстати, думаю в моих удалениях замешан кант.

 

 

Урожай не удался vaganych.png

 

 

konata.png

Поделиться сообщением


Ссылка на сообщение

двапой заебал сделай норм ip чтобы они не задетектили тебя

в топане пиши иным языком, а то кант вроде разбирается немного тут ))))


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...