【问题标题】:How to delete first block of bytes of a file in matlab如何在matlab中删除文件的第一个字节块
【发布时间】:2015-04-09 16:23:30
【问题描述】:

我想在 matlab 中删除文件中的第一个字节块(例如:删除文本文件的前 50 个字节)
在matlab中可以吗??如果是这样,如何实现?

【问题讨论】:

  • 您希望使用还是将文件加载到内存中?一种可能的方法是使用fread 读取文件,跳过前 50 个字节,将其余数据读入内存并将其保存回一个新的文本文件中......但我真的不能肯定地说,因为你提供的信息很少。你想做什么?为什么需要这样做?
  • 抱歉,我不想将它加载到内存中……不过是个好主意!
  • 我正在尝试模拟P2P协议集合中的节点,所以文件代表缓存,它不能超过特定大小,所以必须删除旧缓存的一部分
  • 在 Linux / Mac OS 中,有一些有效的方法可以做到这一点……在 Windows 中……我没有想法。从我在 Windows 中看到的情况来看,唯一的方法是进行字节复制,输入指针从您想跳过的字节开始。
  • 我明白了。我认为您无法逃脱字节副本。见这里:stackoverflow.com/questions/28574115/… - 另外,见这里:blogs.msdn.com/b/oldnewthing/archive/2010/12/01/10097859.aspx

标签: matlab file io


【解决方案1】:

您希望使用还是将文件加载到内存中?如果您可以在内存中执行此操作,一种可能的方法是使用fseekfread 读入文件,跳过前几个字节,将其余数据读入内存并使用@ 将其保存回新文件987654323@.

在 Linux / Mac OS 中,有一些有效的方法可以做到这一点,而无需将文件加载到内存中。例如,请看这里:https://unix.stackexchange.com/questions/6852/best-way-to-remove-bytes-from-the-start-of-a-file

但是,如果您在 Windows 中,则无法逃避执行字节复制,这最终意味着在内存中执行此操作。从我在 Windows 中看到的情况来看,唯一的方法是进行字节复制,输入指针从你想跳过的字节开始。

例如在这里:What is the most efficient way to remove first N bytes from a file on Windows?,也在这里:http://blogs.msdn.com/b/oldnewthing/archive/2010/12/01/10097859.aspx

有了这些帖子,您别无选择,只能进行字节复制。因此,如果你想在 MATLAB 中进行同样的仿真,就必须按照我上面所说的进行。


由于您在 MATLAB 中工作,这里有一些示例代码来执行我上面概述的操作:

fid = fopen('data', 'r'); %// Open up data file
fid2 = fopen('dataout', 'w'); %// File to save - new file with skipped bytes

skip = 50; %// Determine how many bytes you want to skip over

fseek(fid1, skip, 'bof'); %// Skip over bytes - 'bof' means from beginning of file

A = fread(fid1); %// Read the data
fwrite(fid2, A); %// Write data to new file

%// Close the files
fclose(fid);
fclose(fid2);

【讨论】:

  • 再次感谢 rayryeng ^_^
  • @user3379482 - 没问题 :) 我现在正在编辑我的帖子以编写一些代码来帮助您使用fread 方法修改文件。给我一点时间。
  • 顺便说一句..您的网站没有加载!
  • @user3379482 - 编辑了我的帖子。试试那个代码,看看它是否有效!
  • @user3379482 - 哦......好吧,我会把代码留在那里,以防其他人想看看。谢谢:)
猜你喜欢
  • 1970-01-01
  • 2014-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多