2015-12-26 2 views
0

Я пытаюсь открыть .html-файл и распечатать некоторую информацию в нем, однако есть ошибка компиляции, которую я не могу найти решение в Интернете. Возможно, я найду здесь несколько указателей на SO.Исправление ошибки: доступ к элементу экземпляра `GLib.FileStream.puts 'denied

код выглядит следующим образом:

def PrintOut(db: Database, which:string) 
    var fi = FileStream.open("recipeprint.html", "w+") 
    stmt:Statement = PreparedStatements.select_recipe(db, which) 
    cols:int = stmt.column_count() 
    var row = new dict of string, string 
    item:int = 1 
    while stmt.step() == ROW 
     for i:int = 0 to (cols - 1) 
      row[ stmt.column_name(i) ] = stmt.column_text(i) 
     FileStream.puts("<H1>%s</H1>", row[ "name" ]) 
     FileStream.puts("<H2>Source: %s</H2>", row[ "source" ]) 
     FileStream.puts("<H2>Servings: %s</H2>", row[ "servings" ]) 
     FileStream.puts("<H3>Ingredient List: </H3>") 
     item++ 

Я компиляции с:

valac "%f" --pkg sdl --pkg sqlite3 --pkg gee-0.8 

Однако, я получаю ошибку:

valac "cookbook.gs" --pkg sdl --pkg sqlite3 --pkg gee-0.8 (no diretório: /home/luis/Dropbox/Documentos/Coding/Genie Programming Language) cookbook.gs:37.9-37.54: error: Access to instance member `GLib.FileStream.puts' denied 
     FileStream.puts("<H1>%s</H1>", row[ "name" ]) 
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cookbook.gs:38.9-38.64: error: Access to instance member `GLib.FileStream.puts' denied 
     FileStream.puts("<H2>Source: %s</H2>", row[ "source" ]) 
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cookbook.gs:39.9-39.68: error: Access to instance member `GLib.FileStream.puts' denied 
     FileStream.puts("<H2>Servings: %s</H2>", row[ "servings" ]) 
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

ли это сделать с версия gee, которую я установил в своей системе?

ответ

0

Мой синтаксис неправильный. Filestream - это класс, который создается в переменной fi. Поэтому проблема заключается в том, что я должен написать:

var entry = "<li>"+row[ "ingredients" ]+"</li>" 
fi.puts(entry) 

Ничего общего с версией Gee.

Источник, который помог мне понять проблему: here