Une partie "User Libraries" sur le forum

Sujets variés concernant le développement en PureBasic

Une partie "Librairies Utilisateurs" sur ce forum, pensez-vous que cela est util ?

Oui
24
96%
Non
1
4%
 
Nombre total de votes : 25

gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Dobro a écrit :
Il y a d'autres choses qui pourraient rendre le forum plus vivable,
si tu pense a l'eradication des cons , ça va etre dur :lol: :lol:


......... je resiste !! :lol:
+1 ! LES CONS ENFORCE ! :-D
Le pire, c que ce n'est pas si faux... :-)
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message par fweil »

Gangsta93, un peu de distinction pourrait peut être faire fuir les incultes !!!
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

fweil a écrit :Gangsta93, un peu de distinction pourrait peut être faire fuir les incultes !!!
Bon, ben... :jesors: :-)
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

je suis 100% d'accord avec cette idée genial :D meme si je ne suis pas fort en programmation et en lib etc...
les programmes on plus de "geule" avec des libs :D
et 1 vote en plus :lol:
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Apparement je suis le seul à avoir voté non (Sur 17 votes pour l'instant) car je ne suis pas pour une ramification extreme du forum, faire des parties windows, Linux, MacOS (Dont il était question il y a peu) à la rigueur bien que en regardant les posts des Anglais, qui ont ces catégories et sont bien plus nombreux ne s'en servent pas ou peu. Alors une section UserLib, est-ce vraiment utile ? Il n'y pas énormément de posts qui pointent vers des librairies utilisateurs. Par contre l'idée des balises comme [Resolu] pourrait à mon avis grandement aider les utilisateurs.


Un con qui résiste aussi..... :lol:
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

moi je suis pas pour toute une partie userlib avec tel forum pour les annonces, tel forum pour les bugs etc... L'idée d'ajouter par exemple entre Annonces et ASM (par exemple) un chtit forum dédié aux libs, pk pas ?

ca peut d'un côter éviter de chercher à droite et à gauche... l'idée m'a motivée au point de commencer une lib en assembleur ^^ (une facile hein ^^, je suis un débutant...)

Dri
scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

salut
je suis pour une patie user librairie sa eviterai de chercher les librairie 1 h a chaque fois quon en a besoin et il y aurai des explication ....
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

J'ai reprogrammé ma coloration syntaxe (version PB).

Voici la source pour ceux que ça intéresse :

Code : Tout sélectionner

/**
	Converti un texte sans tenir compte du texte, des constantes, etc...
	Il faut donc juste passer une partie correcte
*/
function convSyntaxePB($text)
{
	if (strlen($text) < 2)
		return $text;
	
	if (ereg("^[+-]", $text))
		$text = "  " . $text;
	else
		$text = " " . $text;
	
	// Enjoliver le texte en rajoutant des espaces
	$text = ereg_replace("(:)([a-zA-Z0-9\"$])", "\\1 \\2", $text);
	$text = ereg_replace("([+])([a-zA-Z0-9\"$])", "\\1 \\2", $text);
	$text = ereg_replace("([a-zA-Z0-9\"$])([+])", "\\1 \\2", $text);
	$text = ereg_replace("([-])([a-zA-Z0-9\"$])", "\\1 \\2", $text);
	$text = ereg_replace("([a-zA-Z0-9\"$])([-])", "\\1 \\2", $text);
	$text = ereg_replace("([=])([a-zA-Z0-9\"$])", "\\1 \\2", $text);
	$text = ereg_replace("([a-zA-Z0-9\"$])([=])", "\\1 \\2", $text);
	


	// Coloration pour les fonctions
	while (substr_count($text, " ("))
		$text = str_replace(" (", "(", $text);
	$lastFound = -1;
	
	while( ($lastFound+1)<strlen($text) && ($lastFound = strpos($text, "(", $lastFound+1)) )
	{		
		$offset = 0;
		$i = $lastFound - 1;
		$car = $text{$i};
		while ( $i >= 0  &&  isFctLetter($text{$i}) )
			$i--;
		
		if ($text{$i}=='.')
		{
			$offset = $lastFound - $i;
			$i--;
			while ( $i >= 0  &&  isFctLetter($text{$i}) )
				$i--;
		}
		
		if (($lastFound - $i)>1 && $i>=0)
		{
			$i++;
			$text = substr($text, 0, $i) . "<font class=\"fct\">"
				. substr($text, $i, $lastFound-($i+$offset)) . "</font>"
				. substr($text, $lastFound-$offset, strlen($text)+$offset+1-$lastFound);
			$lastFound = $lastFound  + strlen("<font class=\"fct\"></font>")+1;
		}
	}
	
	// Coloration des mots clés
	$keyWord = Array("ElseIf", "EndIf", "Else", "For", "To", "Next", "Repeat", "If", "Goto",
			"Until", "While", "Wend", "ProcedureReturn", "Procedure", "EndProcedure",
			"Enumeration", "EndEnumeration", "Global",  "And", "Or", "Select", "Case",
			"Default", "EndSelect", "Structure", "EndStructure", "End", "Shared", "Dim",
			"Debug", "Protected", "NewList", "Restore", "Break", "Continue", "ForEach",
			"ForEver", "Gosub", "FakeReturn", "Return", "Interface", "EndInterface",
			"Declare", "IncludeFile", "XIncludeFile");

	$KeyWithPoint = Array("Procedure", "Declare");
	
	foreach($keyWord as $key)
		$text = str_replace(" $key ", " <font class=\"bloc\">$key</font> ", $text);
	
	foreach($KeyWithPoint as $key)
		$text = str_replace(" $key.", " <font class=\"bloc\">$key</font>.", $text);

	$text = substr($text, 1, strlen($text)-1);
	return $text;
}



function isFctLetter($car)
{
	return (eregi("[a-z0-9_]", $car));
}


function lineToPbFont($line)
{
	$out = "";
	$nbSpace = strlen($line) - strlen(ltrim($line));
	$line = " " . trim($line). " ";
	$pbText = "";
	$line = ereg_replace("([a-zA-Z0-9\"$])(=)([a-zA-Z0-9\"])", "\\1 = \\3", $line);
	$line = ereg_replace("([a-zA-Z0-9\"$ ])(=)([a-zA-Z0-9\"])", "\\1= \\3", $line);
	$line = ereg_replace("([a-zA-Z0-9\"$])(=)([a-zA-Z0-9\" ])", "\\1 =\\3", $line);
	
	for($i=0; $i<strlen($line); $i++)
	{
		switch($line{$i})
		{
			case '"':
				$out = $out . convSyntaxePB($pbText);
				$pbText = "";
				$pos = strpos($line, '"', $i+1);
				if($pos)
				{
					$out = $out."<font class=\"mot\">".substr($line, $i, $pos+1-$i)."</font>";
					$i = $pos;
				}
				break;
			
			case "'":
				$out = $out . convSyntaxePB($pbText);
				$pbText = "";
				$pos = strpos($line, "'", $i+1);
				if($pos)
				{
					$out = $out."<font class=\"mot\">".substr($line, $i, $pos+1-$i)."</font>";
					$i = $pos;
				}
				break;
			
			case "!":
				$out = $out . convSyntaxePB($pbText);
				$pbText = "";
				$pos = strpos($line, " ", $i+1);
				if($pos)
				{
					$out = $out."<font class=\"diese\">".substr($line, $i, $pos-$i)."</font> ";
					$i = $pos;
				}
				break;
			
			case "#":
				$out = $out . convSyntaxePB($pbText);
				$pbText = "";
				$j = $i+1;
				$car = strtolower($line{$j});
				while ( ($car == '_' || ($car >= 'a' && $car <= 'z')) && ($j < strlen($line)) ) {
					$j++; $car = strtolower($line{$j}); }
				if ($j < strlen($line))
				{
					$j--;
					$out = $out."<font class=\"diese\">".substr($line, $i, $j+1-$i)."</font>";
					$i = $j;
				}
				break;
			
			case ";":
				$out = $out . convSyntaxePB($pbText);
				if ($i>0 && $line{$i-1} != ' ')
					$out = $out . " ";
				$pbText = "";
				$out = $out . "<font class=\"comment\">".ereg_replace("^([;])([a-zA-Z0-9\"_$])", "\\1 \\2", substr($line, $i, strlen($line)-($i+1)))."</font>";
				$i = strlen($line);
				break;
			
			default:
				$pbText = $pbText . $line{$i};
				if ( ($line{$i} == ',') && ($line{$i+1} != ' ') )
					$pbText = $pbText . " ";
		}
	}
	$out = trim($out . convSyntaxePB($pbText));
	for($i=0; $i<$nbSpace; $i++)
		$out = " " . $out;
	return $out;
}


function texteToPbFont($texte)
{
	$newLine = chr(13).chr(10);
	$arr = explode($newLine, $texte);
	$texte = "";
	foreach($arr as $key)
		$texte = $texte . lineToPbFont($key) . $newLine;
	
	return $texte;
}

Le fichier CSS : (de Dri :wink: )

Code : Tout sélectionner

.texte {
	text-decoration:none; 
	font-size: 13px;
	font-weight : normal; 
	font-family : Courrier;
	color: #000000 ;
}

.fct {
	text-decoration:none; 
	font-size: 14px; 
	font-weight : normal;
	font-family : Courrier;
	color: #006666 ;
}

.bloc {
	text-decoration:none; 
	font-size: 14px; 
	font-weight : bold;
	font-family : Courrier;
	color: #006666 ;
}

.comment {
	text-decoration:none; 
	font-size: 14px; 
	font-weight : normal;
	font-family : Courrier;
	color: #00AAAA ;
}

.mot {
	text-decoration:none; 
	font-size: 14px;
	font-weight : normal; 
	font-family : Courrier;
	color: #808080 ;
}

.diese {
	text-decoration:none; 
	font-size: 14px;
	font-weight : normal; 
	font-family : Courrier;
	color: #924B72 ;
}

Il suffit donc juste de faire ça en PHP pour colorut le texte :

Code : Tout sélectionner

<pre>
<?php
echo texteToPbFont($myPBSource);
?>
</pre>

Le résultat est consultable ici : http://luchezl.free.fr/Programmation/PB/OpenSource/
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

tu t'es pas trompé de sujet pour ca ? (c'est regis qui fait la même chose pour Puresources)
Sinon ta CSS ne ressemble que vaguement à la mienne lol
la mienne est optimisée 8)
et puis elle prend en compte toute la coloration syntaxique (sauf l'asm)

Dri ;)
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Oops oui, g été trop rapide là !!!
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Répondre