// Functions to read a network stored in a GML file into a NETWORK struct
//
// Mark Newman 11 AUG 06
//
// To use this software, #include "readgml.h" at the head of your program
// and then call the following.
//
// Function calls:
// int read_network(NETWORK *network, FILE *stream)
// -- Reads a network from the FILE pointed to by "stream" into the
// structure "network". For the format of NETWORK structs see file
// "network.h". Returns 0 if read was successful.
// void free_network(NETWORK *network)
// -- Destroys a NETWORK struct again, freeing up the memory
// Inclusions
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "network.h"
// Constants
#define LINELENGTH 1000
// Types
typedef struct line {
char *str;
struct line *ptr;
} LINE;
// Globals
LINE *first;
LINE *current;
// Function to read one line from a specified stream. Return value is
// 1 if an EOF was encountered. Otherwise 0.
int read_line(FILE *stream, char line[LINELENGTH])// line在这里为一个字符数组
{
if (fgets(line,LINELENGTH,stream)==NULL) return 1; //每次都读一行
line[strlen(line)-1] = '\0'; // Erase the terminating NEWLINE
return 0;
}
// Function to read in the whole file into a linked-list buffer, so that we
// can do several passes on it, as required to read the GML format
// efficiently
int fill_buffer(FILE *stream)
{
int length;
char line[LINELENGTH];
LINE *previous; //之前的指针
if (read_line(stream,line)!=0) {
first = NULL; // Indicates empty buffer
return 1;
}
length = strlen(line) + 1;
first = malloc(sizeof(LINE));//first 为指向第一个节点的指针
first->str = malloc(length*sizeof(char));
strcpy(first->str,line); //用于完成将读到到line字符串赋值到 LINE的链表中。
previous = first;
while (read_line(stream,line)==0) { //将GML文件的每一行存在以FIRST存放的链表中,而LINE结构体为链表的节点。
length = strlen(line) + 1; //而LINE结构体中的,str字符指针,用来连接读到到字符串,这里的加1是为了存放\0空字符。
previous->ptr = malloc(sizeof(LINE));
previous = previous->ptr;
previous->str = malloc(length*sizeof(char));
strcpy(previous->str,line);
}
previous->ptr = NULL; // Indicates last line //将最后一个节点的ptr的指向为空,说明链表到了尾点
return 0;
}
// Function to free up the buffer again
void free_buffer()
{
LINE *thisptr;
LINE *nextptr;
thisptr = first;
while (thisptr!=NULL) {
nextptr = thisptr->ptr;
free(th
相关推荐
AI工具 | 每个打工人必备的15款人工智能超级工具
不过,还是有一些靠谱的人工智能平台,它们可不只是营销噱头。有些AI公司正试图改变游戏规则。人工智能工具让人们能够更聪明地工作,而不是更辛苦地劳作。如果你想知道未来有什么,那就来看看这10款人工智能工具吧,它们将彻底改变我们的工作方式。
JAVA 节点路径搜索 GML文件格式解析
搜索拓扑图中节点间的所有路径 JAVA代码实现 详细的注释 支持GML图形文件的解析 适用于有向图和无向图、加权图和无权图的路径寻找
GML解析与应用C#
GML解析与应用、GML可视化、GML空间分析。类库调用NTS
GML格式详解,写入读取GML 示例
GML 是一种强大的地理空间数据格式,它可以携带丰富的地理信息和属性数据。由于它是基于 XML 的,所以具有很好的可读性和可扩展性。在 GIS 领域,GML 被广泛用于数据交换和集成,特别是在 Web 服务中。
什么是GML
. GML介绍 GML是基于XML的空间信息编码标准,由OpenGIS Consortium (OGC)提出,得到了许多公司的大力支持,如Oracle、Galdos、MapInfo、CubeWerx等。运用GML,封装的地理数据和图形解释是清楚分离的。如前所述,图形解释格式包括SVG、VML和X3D等。GML基于文本表示地理信息 文本比较简单、直观,容易理解和编辑。已经在空间信息和三维显示上得到广
【Python】networkx读取gml图文件,有两个问题影响使用
【问题描述】 networkx可直接读取gml文件:nx.read_gml(file),但是有两个问题影响使用: (1)一定要求gml文件中的节点有“label”键值对,不然会报错 networkx.exception.NetworkXError: node #0 has no 'label' attribute (2)对节点的索引必须为label值。例如,G._node[label]...
Python:GML(地理标记语言)数据导入示例
GML 数据可以在支持该格式的不同软件应用程序和系统之间交换,从而实现其他 GIS 软件之间的互操作性,并允许数据轻松共享并集成到各种应用程序中。4.元数据管理:GML 可以存储关于地理特征和数据的元数据,包括关于数据质量、准确性和出处的信息。5.标准合规性:GML 是由开放地理空间联盟 (OGC) 维护的广泛认可的标准,可确保地理空间数据遵守通用标准,并可跨不同的应用程序和系统使用。GML 是可扩展的,这意味着用户可以定义他们的元素和属性来扩展标准模式以表示其他类型的地理要素或存储其他元数据。
Android之解析GML并显示
本例主要实现在APP中解析GML数据并显示GML,地理标记语言(外语全称:Geography MarkupLanguage、外语缩写:GML),它由开放式地理信息系统协会(外语缩写:OGC)于1999年提出,并得到了许多公司的大力支持,如Oracle、Galdos、MapInfo、CubeWerx等。GML能够表示地理空间对象的空间数据和非空间属性数据 实现思路GML文档解析GML文档的本质还是Xm
【亲测免费】 探索电网数据的新利器:电网数据Gephi数据集
探索电网数据的新利器:电网数据Gephi数据集 【下载地址】电网数据Gephi数据集分享 本仓库提供了一个名为“电网数据Gephi数据集.rar”的资源文件,该文件涵盖了美洲大部分电网数据,可以直接导入Gephi进行运行和分析。数据集包含两个主要文件:`power.gml` 和 `power.txt`,方便用户快速上手和...
关于GIS数据分类方式
GIS数据有很多种分类方式,按照数据结构可分为矢量数据、栅格数据、DEM数据,还可以再细致的分为数据库格式、点云格式、3D格式,也可以按照各厂家和标准类别来分等等。笔者也是GIS小白,在这里把收集到的素材略加整理,万一碰到形形色色的GIS文件,不至于显得太意外。一、栅格数据栅格数据由像素组成。它们通常间隔规则且呈方形,但不必如此。栅格通常看起来像素化,因为每个像素都有自己的值或类。1. netCD...
物联网实训笔记_XML基础知识
XML相关知识 一 XML基本概述 1. XML简单的历史介绍 1969年 GML 通用标记语言 用于计算机之间的通信,通信就会传输数据,那么就需要一种数据的规范 1985年 SGML 标准通用标记语言 对GML进行完善 1993年 HTML 超文本的标记语言(HyperText Markup Language) 随着万维网的推广,在SGML的基础上,又出现了HTML语言,用于万维网上的页面展示 但HTML有不少缺陷: a.标签不能扩展,不能自定义,只能使用默认的 b.兼容性不好(
4个步骤掌握UndertaleModTool:从资源解包到高级游戏修改
UndertaleModTool是一款功能强大的开源工具,专为游戏修改和资源编辑设计,尤其适用于GameMaker引擎开发的游戏。本文将通过四个核心步骤,帮助你从基础操作到高级应用,全面掌握这款工具的使用方法,释放你的游戏创作潜能。 ## 一、工具核心价值解析 UndertaleModTool作为目前最完整的GameMaker游戏修改工具,其核心价值体现在三个方面:首先,它提供了从解包到重新打
从玩家到创造者:用UndertaleModTool解锁GameMaker游戏无限可能 [特殊字符]
你是否曾想过为心爱的Undertale或Deltarune添加自己的故事?是否渴望调整游戏角色能力,创造独特的游戏体验?UndertaleModTool(简称UTMT)就是那把打开GameMaker游戏世界大门的钥匙🔑。作为最完整的GameMaker游戏修改、反编译和解包工具,它让你从普通玩家蜕变为游戏创作者。 ## 为什么你需要这个GameMaker游戏修改神器?✨ 想象一下,你手中有一款
UndertaleModTool:终极GameMaker游戏修改指南与完全解决方案
想要为心爱的Undertale或Deltarune游戏添加全新内容吗?UndertaleModTool(UTMT)是一款功能全面的开源工具,专门用于修改、反编译和解包GameMaker Studio游戏。这款游戏修改工具让普通玩家也能轻松自定义游戏内容,从简单的参数调整到复杂的脚本注入,为您提供完整的游戏定制体验。 ## 🎮 为什么选择UndertaleModTool? **Undertal
解锁游戏改造新维度:UndertaleModTool深度探索
UndertaleModTool作为目前最完整的Undertale和GameMaker游戏修改工具,为游戏开发者、模组制作者和游戏研究者提供了前所未有的深度访问能力。这款开源工具不仅能实现基础的游戏数据修改,更能让用户深入探索游戏内部结构,重新定义游戏体验的每一个细节。在游戏修改领域,UndertaleModTool以其全面的功能和灵活的扩展性,成为了GameMaker游戏修改的标准工具。 ##
xml
一 XML基本概述1. XML简单的历史介绍 1969年 GML 通用标记语言 用于计算机之间的通信,通信就会传输数据,那么就需要一种数据的规范 1985年 SGML 标准通用标记语言 对GML进行完善 1993年 HTML 超文本的标记语言(HyperText Markup Language) 随着万维网的推广,在SGML的基础上,又出现了HTML语言,用于万维网上的页...
如何用UndertaleModTool轻松修改Undertale游戏:新手完整指南
UndertaleModTool是迄今为止最完整的游戏修改工具,专为《传说之下》及其他GameMaker游戏提供反编译、解包和模组制作功能。无论你是想修改游戏对话、替换角色外观,还是创建全新游戏机制,这个开源工具都能帮你实现。本文将为你提供从零开始的完整指南,让你轻松掌握游戏修改的核心技巧。 ## 🎮 为什么选择UndertaleModTool? 很多Undertale玩家都有过这样的困扰:
python社区发现对gml文件的分析,在Python中从GML文件中提取数据
我有一个GML(图形(不是涂鸦)建模语言)文件,我想从中创建ID到标签的映射.我不知道如何做到这一点,因为我的列表操作似乎不起作用.我尝试使用指定如何使用两个分隔符的示例,但它不适用于我的文件.有人可以指导我吗?GML文件排列如下:graph [node [id 0label "24"]node [id 1label "25"]node [id 2label "26"]node [id 3labe...
【复杂网络系列】图模型语言(graph model language)gml格式文件生成代码
python代码 edges格式如下: edges={} edges[node1]={} edges[node2]={} edges[node1][node2]=1 def gen_gml_file(edges,filename): """ 生成gml格式文件 """ fp_out=open(filename,'w')
如何在Python中运行GML文件
GML(Geography Markup Language)是一种用于描述地理数据的标记语言,广泛用于地理信息系统(GIS)领域。它是一种基于XML的语言,可以表示地理特征、坐标、属性等信息。随着地理数据应用的日益广泛,处理和运行GML文件变得越来越重要。在本文中,我们将探讨如何使用Python来运行和解析GML文件,从而...
csgo语音原文件.rar
csgo中文语音原文件,丢了的朋友可以下载后把文件拖回到原来的目录中文件路径为\steamapps\common\Counter-Strike Global Offensive\csgo
5万+




被折叠的 条评论
为什么被折叠?



