Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

« Newer Snippets
Older Snippets »
Showing 1-10 of 31 total  RSS 

Listing the files and subdirectories in C - Linux

// program lists the files and subdirectories within a given directory in full path

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>

char *path_cat (const char *str1, char *str2);

int main () {
	struct dirent *dp;

        // enter existing path to directory below
	const char *dir_path="/path/to/directory/to/list";
	DIR *dir = opendir(dir_path);
	while ((dp=readdir(dir)) != NULL) {
		char *tmp;
		tmp = path_cat(dir_path, dp->d_name);
		printf("%s\n", tmp);
		free(tmp);
		tmp=NULL;
	}
	closedir(dir);
	return 0;
}

char *path_cat (const char *str1, char *str2) {
	size_t str1_len = strlen(str1);
	size_t str2_len = strlen(str2);
	char *result;
	result = malloc((str1_len+str2_len+1)*sizeof *result);
	strcpy (result,str1);
	int i,j;
	for(i=str1_len, j=0; ((i<(str1_len+str2_len)) && (j<str2_len));i++, j++) {
		result[i]=str2[j];
	}
	result[str1_len+str2_len]='\0';
	return result;
}

Put mounted drives list into Glist

Function that gets list of mounted drives from '/etc/fstab' and '/etc/mtab' files and puts data in the GList object (from GLib library) that can be further used in GTK.

#include <glib.h>
#include <mntent.h>
#include <string.h>

GList * g_get_drives_list(GList * g) {
	FILE *fstab = NULL;
	struct mntent *part = NULL;
	gchar *mntp = NULL;
	
	if ((fstab = setmntent( "/etc/fstab", "r" )) != NULL) {
		while ((part = getmntent(fstab))  != NULL) {
			if((strcmp(part->mnt_type, "proc")) != 0 && (strcmp(part->mnt_type, "devpts")) != 0 
																					&& (strcmp(part->mnt_type, "swap")) != 0) {
				mntp = g_strdup(part->mnt_dir);
				g=g_list_append(g, mntp);
			}
		}
		endmntent(fstab);
	}
	
	if ((fstab = setmntent( "/etc/mtab", "r")) != NULL) {
		while ((part = getmntent(fstab)) != NULL) {
			if (part->mnt_type != NULL) {
				if((strcmp(part->mnt_type, "proc")) != 0 && (strcmp(part->mnt_type, "devpts")) != 0
						&& (strcmp(part->mnt_type, "swap")) != 0 && (strcmp(part->mnt_type, "sysfs")) != 0
						&& (strcmp(part->mnt_type, "tmpfs")) != 0 && (strcmp(part->mnt_type, "fuseblk")) != 0
						&& (strcmp(part->mnt_type, "securityfs")) != 0) {
					if((g_list_find_custom(g, part->mnt_dir, (GCompareFunc)strcmp)) == 0) {
						mntp=g_strdup(part->mnt_dir);
						g=g_list_append(g, mntp);
					}
				}
			}
		}
		endmntent(fstab);
	}
	return g;
}

A simple XSLT example

Produce a list of filenames using XML and XSLT

file: dir.xsl
<?xml version="1.0"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
      
    <xsl:template match="dir">
    <div id="articles">
      <ul>
      <xsl:apply-templates select="records/file"/>
      </ul>
    </div>
    </xsl:template>
    
    <xsl:template match="records/file">
      <li><xsl:value-of select="."/></li>
    </xsl:template>
    
</xsl:stylesheet>


file: dir.xml
<dir>
  <summary>
    <directory>./</directory>
  </summary>
  <records>
    <file type='xml'>mjournal.xml</file>
    <file type='rb'>projxmlhelper.rb</file>
    <file type='rb'>feedpopulated.rb</file>
    <file type='rb'>squrl_handler.rb</file>
    <file type='cgi'>snurl.cgi</file>
    <file type='cgi'>dynalert.cgi</file>
    <file type='rb'>password_handler.rb</file>
    <file type='rb'>category.rb</file>
    <file type='rb'>gwd.rb</file>
    <file type='cgi'>new-journal-entry.cgi</file>
  </records>
</dir>


then transforming the XML with the command 'xsltproc dir.xsl dir.xml' produces the following:
output:
<div id='articles'>
  <ul>
    <li>mjournal.xml</li>
    <li>projxmlhelper.rb</li>
    <li>feedpopulated.rb</li>
    <li>squrl_handler.rb</li>
    <li>snurl.cgi</li>
    <li>dynalert.cgi</li>
    <li>password_handler.rb</li>
    <li>category.rb</li>
    <li>gwd.rb</li>
    <li>new-journal-entry.cgi</li>
  </ul>
</div>

Array to HTL list helper

Makes a HTML list out of any array. The objects in the array is yielded to the block. Usage:


<%= list(@posts) { |post| link_to post.title, posts_url(post) } %>


And the actual helper (put it in application_helper.rb):

def list(stuff, &block)
  content_tag(:ul, stuff.map { |thingie| content_tag(:li, yield(thingie)) })
end

Country List (catalan)

List of countries in Catalan, without formatting.

Afganistan
Albània
Alemanya
Andorra
Angola
Antigua i Barbuda
Antilles
Antilles Holandeses
Aràbia Saudita
Svalbard
Algèria
Argentina
Armènia
Aruba
Austràlia
Àustria
Azerbaidjan
Bahames
Bahrein (illes)
Bangla Desh
Barbados
Bèlgica
Belize
Bermudes
Bhutan
Bielorússia
Bolívia
Bòsnia i Herzegovina
Botswana
Brasil
Brunei
Bulgària
Burkina Faso
Burundi
Cap Verd
Cambodja
Camerun
Canadà
Txad
Xile
Xina
Xipre
Ciutat del Vaticà
Colòmbia
Comores
Congo
Corea del Nord
Corea del Sud
Costa d'Ivori
Costa Rica
Croàcia
Cuba
Benín
Dinamarca
Djibouti
Dominica
Equador
Egipte
El Salvador
Emirats Àrabs Units
Eritrea
Eslovàquia
Eslovènia
Espanya
Estats Units d'Amèrica
Estònia
Etiòpia
Federació Russa
Federació Malaia
Fiji
Filipines
Finlàndia
França
Gabon
Gàmbia
Geòrgia
Ghana
Gibraltar
Granada
Grècia
Groenlàndia
Guadalupe
Guatemala
Guinea
Guinea Bissau
Guinea Equatorial
Guaiana
Guaiana Francesa
Haití
Hondures
Hong Kong
Hongria
Índia
Indonèsia
Iraq
Iran
Irlanda
Man (illa de)
Islàndia
Anglonormandes (illes)
Caiman Islands
Cook (illes)
Fèroe (illes)
Malvines (illes)
Mariannes (illes)
Marshall (illes)
Salomó (illes)
Turks i Caicos (illes)
Verges Britàniques (illes)
Wallis i Futuna (illes)
Israel
Itàlia
Jamaica
Japó
Jordània
Kazakhstan
Kenya
Kirguizistan
Kiribati
Kuwait
Laos
Lesotho
Letònia
Líban
Libèria
Líbia
Liechtenstein
Lituània
Luxemburg
Macau
Macedònia
Madagascar
Malàisia
Malawi
Maldives
Mali
Malta
Marroc
Martinica
Maurici
Mauritània
Mayotte
Mèxic
Micronèsia
Mònaco
Mongòlia
Montserrat
Moçambic
Myanmar
Namíbia
Nauru
Nepal
Nicaragua
Níger
Nigèria
Noruega
Nova Caledònia
Nova Zelanda
Oceania Americana
Oceania Australiana
Oceania Neozelandesa
Oman
Països Baixos
Pakistan
Palau (illes)
Palestina
Panamà
Papua Nova Guinea
Paraguai
Perú
Pitcairn
Polinèsia Francesa
Polònia
Portugal
Puerto Rico
Qatar
Regne Unit
República Txeca
República Dominicana
República Centreafricana
República Democràtica del Congo
Reunió (illa de la)
Rwanda
Romania
Samoa
Saint Christopher i Nevis
Saint-Pierre-et-Miquelon
Saint Vincent i les Grenadines
Saint Helena
Saint Lucia
São Tomé i Príncipe
Senegal
Seychelles
Sierra Leone
Singapur
Síria
Somàlia
Sudfrica
Sri Lanka
Sudan
Suècia
Suïssa
Surinam
Swazilàndia
Tailàndia
Taiwan
Tadjikistan
Tanzània
Timor Oriental
Togo
Tonga
Trinitat i Tobago
Tunísia
Turkmenistan
Turquia
Tuvalu
Uganda
Ucraïna
Uruguai
Uzbekistan
Vanuatu
Veneçuela
Vietnam
Iemen
Iugoslàvia
Zàmbia
Zimbabwe

Country List (spanish)

List of countries in Spanish, without formatting

Afganistán
Albania
Alemania
Andorra
Angola
Antigua y Barbuda
Antillas
Antillas Holandesas
Arabia Saudita
Archipiélago Svalbard
Argelia
Argentina
Armenia
Aruba
Australia
Austria
Azerbaiyán
Bahamas
Bahrein (islas)
Bangladesh
Barbados
Bélgica
Belice
Bermudas
Bhután
Bielorrusia
Bolivia
Bosnia y Herzegovina
Botswana
Brasil
Brunei
Bulgaria
Burkina Faso
Burundi
Cabo Verde
Camboya
Camerún
Canadá
Chad
Chile
China
Chipre
Ciudad del Vaticano
Colombia
Comores
Congo
Corea del Norte
Corea del Sur
Costa de Marfil
Costa Rica
Croacia
Cuba
Benín
Dinamarca
Djibouti
Dominica
Ecuador
Egipto
El Salvador
Emiratos Árabes Unidos
Eritrea
Eslovaquia
Eslovenia
España
Estados Unidos de América
Estonia
Etiopía
Federación Rusa
Federación Malaya
Fiji
Filipinas
Finlandia
Francia
Gabón
Gambia
Georgia
Ghana
Gibraltar
Granada
Grecia
Groenlandia
Guadalupe
Guatemala
Guinea
Guinea-Bissau
Guinea Ecuatorial
Guyana
Guyana Francesa
Haití
Honduras
Hong Kong
Hungría
India
Indonesia
Iraq
Irán
Irlanda
Isla de Man
Islandia
Islas Anglonormandas
Islas Cayman
Islas Cook
Islas Feroe
Islas Malvinas
Islas Marianas del Norte
Islas Marshall
Islas Salomón
Islas Turks y Caicos
Islas Vírgenes Británicas
Islas Wallis y Fortuna
Israel
Italia
Jamaica
Japón
Jordania
Kazajstán
Kenya
Kirguizistán
Kiribati
Kuwait
Laos
Lesotho
Letonia
Líbano
Liberia
Libia
Liechtenstein
Lituania
Luxemburgo
Macao
Macedonia
Madagascar
Malasia
Malawi
Maldivas
Malí
Malta
Marruecos
Martinica
Mauricio
Mauritania
Mayotte
México
Micronesia
Mónaco
Mongolia
Montserrat
Mozambique
Myanmar
Namibia
Nauru
Nepal
Nicaragua
Níger
Nigeria
Noruega
Nueva Caledonia
Nueva Zelanda
Oceanía Americana
Oceanía Australiana
Oceanía Neozelandesa
Omán
Países Bajos
Pakistán
Palau
Palestina
Panamá
Papua Nueva Guinea
Paraguay
Perú
Pitcairn
Polinesia Francesa
Polonia
Portugal
Puerto Rico
Qatar
Reino Unido
República Checa
República Dominicana
República Centroafricana
República Democrática del Congo
Reunion
Ruanda
Rumania
Samoa
Saint Christopher y Nevis
San Pedro y Miquelon
San Vicente
Santa Helena
Santa Lucía
Santo Tomé y Príncipe
Senegal
Seychelles
Sierra Leona
Singapur
Siria
Somalia
Sudáfrica
Sri Lanka
Sudán
Suecia
Suiza
Surinam
Swazilandia
Tailandia
Taiwan
Tayikistán
Tanzania
Timor Oriental
Togo
Tonga
Trinidad y Tobago
Túnez
Turkmenistán
Turquía
Tuvalu
Uganda
Ucrania
Uruguay
Uzbekistán
Vanuatu
Venezuela
Vietnam
Yemen
Yugoslavia
Zambia
Zimbabwe

Country List (english)

List of countries without formatting.

Afghanistan
Albania
Germany
Andorra
Angola
Antigua and Barbuda
Antilles
Netherlands Antilles
Saudi Arabia
Svalbard
Algeria
Argentina
Armenia
Aruba
Australia
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belgium
Belize
Bermuda
Bhutan
Belarus
Bolivia
Bosnia and Herzegovina
Botswana
Brazil
Brunei
Bulgaria
Burkina-Faso
Burundi
Cape Verde
Cambodia
Cameroon
Canada
Chad
Chile
China
Cyprus
Vatican City
Colombia
Comoros
Congo
North Korea
South Korea
Côte d'Ivoire
Costa Rica
Croatia
Cuba
Benin
Denmark
Djibouti
Dominica
Ecuador
Egypt
El Salvador
United Arab Emirates
Eritrea
Slovakia
Slovenia
Spain
United States of America
Estonia
Ethiopia
Russian Federation
Malay States
Fiji
Republic of the Philippines
Finland
France
Gabon
Gambia
Georgia
Ghana
Gibraltar
Grenada
Greece
Greenland
Guadeloupe
Guatemala
Guinea
Guinea-Bissau
Equatorial Guinea
Guiana
French Guiana
Haiti
Honduras
Hong Kong
Hungary
India
Indonesia
Iraq
Iran
Ireland
Isle of Man
Iceland
Channel Islands
Cayman Islands
Cook Islands
Faeroes
Falkland Islands
Northern Mariana Islands
Marshall Islands
Solomon Islands
Turks and Caicos Islands
British Virgin Islands
Wallis and Futuna Islands
Israel
Italy
Jamaica
Japan
Jordan
Kazakhstan
Kenya
Kyrgyzstan
Kiribati
Kuwait
Laos
Lesotho
Latvia
Lebanon
Liberia
Libya
Liechtenstein
Lithuania
Luxemburg
Macao
Macedonia
Madagascar
Malaysia
Malawi
Maldives
Mali
Malta
Morocco
Martinique
Mauritius
Mauritania
Mayotte
Mexico
Micronesia
Monaco
Mongolia
Montserrat
Mozambique
Myanmar
Namibia
Nauru
Nepal
Nicaragua
Niger
Nigeria
Norway
New Caledonia
New Zealand
Polynesia
Micronesia
Melanesia
Oman
Netherlands
Pakistan
Palau Islands
Palestine
Panama
Papua New Guinea
Paraguay
Peru
Pitcairn Island
French Polynesia
Poland
Portugal
Puerto Rico
Qatar
United Kingdom
Czech Republic
Dominican Republic
Central African Republic
Democratic Republic of the Congo
Réunion
Rwanda
Romania
Samoa
Saint Christopher-Nevis
Saint Pierre and Miquelon
Saint Vincent and the Grenadines
Saint Helena
Saint Lucia
São Tomé e Principe
Senegal
Seychelles
Sierra Leone
Singapore
Syria
Somalia
South Africa
Sri Lanka
Sudan
Sweden
Switzerland
Surinam
Swaziland
Thailand
Taiwan
Tajikistan
Tanzania
East Timor
Togo
Tonga
Trinidad and Tobago
Tunisia
Turkmenistan
Turkey
Tuvalu
Uganda
Ukraine
Uruguay
Uzbekistan
Vanuatu
Venezuela
Vietnam
Yemen Republic
Yugoslavia
Zambia
Zimbabwe

Directory List with PHP

// description of your code here

This code list all files and subdirectories in a dirctory with links.


<html><head><title>ribafs.net - Tutoriais</title></head>
<body bgcolor='#FFFACD'>
<h2 align=center><a href="http://ribafs.net">http://ribafs.net - <?php echo date('d/m/Y H:i:s'); ?></a></h2>

<?php
$dn = opendir (dirname(__FILE__));
$exclude = array("index.php", ".", "..");

// adiciona os arquivos ao array $arquivos
while($fn = readdir($dn)) {
	if ($fn == $exclude[0] || $fn == $exclude[1] || $fn == $exclude[2]) continue;
	$arquivos[] = $fn;
}
// ordena o vetor
sort($arquivos);
// exibe os arquivos

foreach ($arquivos as $arquivo)

if (is_dir($arquivo)){
	$dir .= "<img src='/imagens/diretorio.png'>&nbsp;<a href='$arquivo'>$arquivo</a><br>";
}else{
	$tamanho = filesize($arquivo);
	$m = 'bytes';
	if ($tamanho>1024) {
		$tamanho=round($tamanho/1024,2);
		$m = 'KB';
	} elseif($tamanho > 1024*1024){
		$tamanho = round(($tamanho/1024)/1024,2);
		$m = 'MB';
	}
	$arq .= "<img src='/imagens/arquivo.png'>&nbsp;<a href='$arquivo'>$arquivo</a> - $tamanho $m<br>";
}
echo $dir . $arq;

closedir($dn);
?>


Recursively listing all files below a directory

// description of your code here
Simple iterator to iterate over all non-directory files the lie below a given directory. Demonstrates a use case for the FlatteningIterator snippet.


package playground.library.files;

import java.io.File;
import java.io.FileFilter;
import java.util.Arrays;
import java.util.Iterator;
import playground.library.functional.iterator.FlatteningIterator;

/**
 * Iterates over all non-directory files contained in some subdirectory of the 
 * current one.
 *
 * @author david
 */
public class RecursiveFileListIterator implements Iterator<File>
{
    private final FlatteningIterator flatteningIterator;
    
    public void remove() { } 
    
    public RecursiveFileListIterator(File file, FileFilter filter){
        this.flatteningIterator = new FlatteningIterator(new FileIterator(file, filter)); }
    
    public RecursiveFileListIterator(File file){
        this(file, null);}
    
    
    public boolean hasNext(){ 
        return flatteningIterator.hasNext();}
    
    public File next(){ 
        return (File)flatteningIterator.next();}
    
    
    /**
     * Iterator to iterate over all the files contained in a directory. It returns
     * a File object for non directories or a new FileIterator obejct for directories.
     */
    private static class FileIterator implements Iterator<Object>
    {
        private final Iterator<File> files;
        private final FileFilter filter;
        
        FileIterator(File file, FileFilter filter){ 
            this.files = Arrays.asList(file.listFiles(filter)).iterator();
            this.filter = filter;}
        
        public void remove() { }
        
        public Object next(){
            File next = this.files.next();
            
            if (next.isDirectory()) return new FileIterator(next, this.filter);
            else return next;}
        
        public boolean hasNext(){
            return this.files.hasNext();}       
    }
}

List Comprehensions in Ruby

Taken from: http://www.ruby-forum.com/topic/89416
Author: Phrogz

To avoid reinventing the wheel check out the built-in methods described in:
http://www.ruby-doc.org/core/classes/Array.html and
http://www.ruby-doc.org/core/classes/Enumerable.html.



#class Array 
module Enumerable
  def comprehend(&block) 
    block ? map(&block).compact : self 
  end 
end 


old_data = *(1..5)          # alternatives to the splat operator: (1..5).to_a or (1..5).collect
new_data = *(3..9)


# some reinventing going on here ...
added = new_data.comprehend { |x| x if not old_data.include?(x) } 
removed = old_data.comprehend { |x| x if not new_data.include?(x) } 
same = new_data.comprehend { |x| x if old_data.include?(x) } 
modified = new_data.comprehend { |x| x**2 if not x % 2 == 0 }

p added                                            #=> [6, 7, 8, 9]
p added = new_data - old_data                      #=> [6, 7, 8, 9]

p removed                                         #=> [1, 2]
p removed = old_data - new_data                   #=> [1, 2]

p same                                              #=> [3, 4, 5]
p same = old_data & new_data                        #=> [3, 4, 5]
 
p modified                                        #=> [9, 25, 49, 81]


new_data = [[5, 9], [22, 3], [99, 564]]
bool_vals = new_data.comprehend { |x, y| x <= y }
p bool_vals                                      #=> [true, false, true]


« Newer Snippets
Older Snippets »
Showing 1-10 of 31 total  RSS