比方說,我有一個包含兩行文本文件:如何在C中編輯文本文件中的特定部分行?
Item="1" Name="Sword" Damage="2.5"
Item="2" Name="Axe" Damage="3"
我怎樣才能改變斧在與C的文本文件的損壞3.5?
EDITED:這是我如何閱讀文本文件的每一行,並且我正在用文本信息填充一個gtk列表存儲區,dhd_LocalizaItem是它的一個函數,以獲取「」中的內容。 Item =「1」,我會用那個函數捕獲1,但所有gtk函數的工作正常,正如我所說的,我現在需要一個C函數/命令來編輯文本文件中某一行的特定部分。
void get_message() {
GtkTreeIter dhd_iter;
FILE * dhd_pFile;
char dhd_G_CodProduto[256];
char dhd_G_NomeProduto[256];
char dhd_contaItem[16];
char dhd_quantidade[32];
char dhd_valorItem[32];
char dhd_getbuf[1024];
dhd_chekDel = 0;
dhd_pFile = fopen ("Logs/logCancelar.txt", "r");
if(dhd_pFile == NULL) {
printf("Erro! Nao foi possivel abrir o log de cancelamento!\n");
}
else {
while((fgets(dhd_getbuf, sizeof(dhd_getbuf), dhd_pFile))!=NULL) {
dhd_LocalizaItem (dhd_getbuf, dhd_stringItem);
dhd_restou = dhd_LocalizaItem("Item=" , dhd_getbuf);
strcpy(dhd_contaItem,dhd_restou);
dhd_LocalizaItem (dhd_getbuf, dhd_strong);
dhd_restou = dhd_LocalizaItem("CodProduto=" , dhd_getbuf);
strcpy(dhd_G_CodProduto,dhd_restou);
dhd_LocalizaItem (dhd_getbuf, dhd_strung);
dhd_restou = dhd_LocalizaItem("NomeProduto=" , dhd_getbuf);
strcpy(dhd_G_NomeProduto,dhd_restou);
dhd_LocalizaItem (dhd_getbuf, dhd_streng);
dhd_restou = dhd_LocalizaItem("Quantidade=" , dhd_getbuf);
strcpy(dhd_quantidade,dhd_restou);
dhd_LocalizaItem (dhd_getbuf, dhd_stringTotal);
dhd_restou = dhd_LocalizaItem("ValorTotal=" , dhd_getbuf);
strcpy(dhd_valorItem,dhd_restou);
gtk_list_store_append(GTK_LIST_STORE(mainWindowObjects.liststore), &dhd_iter);
gtk_list_store_set(GTK_LIST_STORE(mainWindowObjects.liststore), &dhd_iter,
ITEM, dhd_contaItem,
CODIGO, dhd_G_CodProduto ,
DESCRICAO, dhd_G_NomeProduto ,
QTD, dhd_quantidade,
VALOR, dhd_valorItem,
-1);
}
}
fclose(dhd_pFile);
}
對不起,我的英語壞人每個人。
查看'fscanf'函數 – xjedam 2014-11-21 20:52:36
對於每一行:讀取它,根據需要進行調整,然後寫入第二個文件。然後刪除第一個文件並重命名第二個。發佈你的嘗試。否則它看起來像是在做你的功課。 – chux 2014-11-21 20:56:52
但如何調整呢?我知道如何閱讀每一行。對不起,我還是新手編程。 – nightk 2014-11-21 20:59:26